En Python, comment déplacer un élément vers un index défini dans une liste ?
Réponses
Trop de publicités?Utilisez le insert
d'une liste :
l = list(...)
l.insert(index, item)
Vous pouvez également utiliser une notation en tranches :
l[index:index] = [item]
Si vous voulez déplacer un élément qui se trouve déjà dans la liste à la position spécifiée, vous devez le supprimer et l'insérer à la nouvelle position :
l.insert(newindex, l.pop(oldindex))
J'ai profilé quelques méthodes pour déplacer un élément dans une même liste avec timeit. Voici celles à utiliser si j>i :
14.4usec x\[i:i\]=x.pop(j),
14.5usec x\[i:i\]=\[x.pop(j)\]
15.2usec x.insert(i,x.pop(j))
et ici ceux à utiliser si j<=i :
14.4usec x\[i:i\]=x\[j\],;del x\[j\]
14.4usec x\[i:i\]=\[x\[j\]\];del x\[j\]
15.4usec x.insert(i,x\[j\]);del x\[j\]
La différence n'est pas énorme si vous ne l'utilisez que quelques fois, mais si vous faites des travaux lourds comme le tri manuel, il est important de prendre le plus rapide. Sinon, je vous recommande de prendre celle qui vous semble la plus lisible.
- Réponses précédentes
- Plus de réponses