Exemples de comment échanger deux éléments d'une liste en python:
Créer une liste
Créons d'abord une liste en python :
l = ['a','e','c','d','b','f']
Échanger deux éléments dans une liste
Pour échanger par exemple les lettres 'e' et 'b', une solution est d'abord de récupérer leurs indices :
idx1 = l.index('e')
idx2 = l.index('b')
renvoie ici 1 et 4 ici (Note : index() renvoie le premier indice en cas de doublons !).
Et puis utilisez un tuple :
l[idx1], l[idx2] = l[idx2], l[idx1]
print(l)
donne
['a', 'b', 'c', 'd', 'e', 'f']
Une autre solution mais moins efficace consiste à faire :
l = ['a','e','c','d','b','f']
tmp = l[1]
l[1] = l[4]
l[4] = tmp
print(l)
donne alors
['a', 'b', 'c', 'd', 'e', 'f']
Une troisième solution est de faire
l = ['a','e','c','d','b','f']
idx1 = 1
idx2 = 4
e1 = l.pop(idx1)
e2 = l.pop(idx2-1) # -1 since we previously pop 'e'
print(e1,e2)
l.insert(idx1,e2)
l.insert(idx2,e1)
print(l)
donne alors
['a', 'b', 'c', 'd', 'e', 'f']
Notez que pour l'exemple ci-dessus, une autre solution en python consiste à faire
l.sort()
donne
['a', 'b', 'c', 'd', 'e', 'f']
Échanger plusieurs éléments dans une liste
Par exemple, considérons la liste suivante :
l = ['c','e','a','d','b','f']
Le but est d'échanger ('b','d') et ('a','c')
En utilisant ce que nous avons appris précédemment, une solution consiste à faire :
for i,j in [(1,4),(0,2)]:
l[i], l[j] = l[j], l[i]
print(l)
donne
`['a', 'b', 'c', 'd', 'e', 'f']