Je dois rechercher dans une liste et remplacer toutes les occurrences d'un élément par un autre. Jusqu'à présent, mes tentatives en code ne me mènent nulle part. Quelle est la meilleure façon de procéder ?
Par exemple, supposons que ma liste contienne les entiers suivants
>>> a = [1,2,3,4,5,1,2,3,4,5,1]
et que j'ai besoin de remplacer toutes les occurrences du nombre 1 par la valeur 10, la sortie dont j'ai besoin est donc
>>> a = [10, 2, 3, 4, 5, 10, 2, 3, 4, 5, 10]
Mon objectif est donc de remplacer toutes les occurrences du nombre 1 par le nombre 10.
Essayez d'utiliser une [compréhension de liste][1] et l'[opérateur ternaire][2].
>>> a=[1,2,3,1,3,2,1,1]
>>> [4 if x==1 else x for x in a]
[4, 2, 3, 4, 3, 2, 4, 4]
[1] : http://docs.python.org/tutorial/datastructures.html#list-comprehensions [2] : http://en.wikipedia.org/wiki/Ternary_operation#Python
>>> a= [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1]
>>> for n, i in enumerate(a):
... if i == 1:
... a[n] = 10
...
>>> a
[10, 2, 3, 4, 5, 10, 2, 3, 4, 5, 10]
>>> a=[1,2,3,4,5,1,2,3,4,5,1]
>>> item_to_replace = 1
>>> replacement_value = 6
>>> indices_to_replace = [i for i,x in enumerate(a) if x==item_to_replace]
>>> indices_to_replace
[0, 5, 10]
>>> for i in indices_to_replace:
... a[i] = replacement_value
...
>>> a
[6, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6]
>>>