Comment échanger deux éléments d'une liste en python ?

Published: 14 juin 2021

Tags: Python; Liste;

DMCA.com Protection Status

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']

Références