137 votes

Comment puis-je réorganiser une liste ?

Si j'ai une liste [a,b,c,d,e] comment puis-je réorganiser les articles de manière arbitraire comme [d,c,a,b,e] ?

Modifier : Je ne veux pas les mélanger. Je veux les réorganiser d'une manière prédéfinie. (par exemple, je sais que le 3ème élément de l'ancienne liste devrait devenir le premier élément de la nouvelle liste)

282voto

AJ. Points 12912

Vous pouvez le faire comme ceci

mylist = ['a', 'b', 'c', 'd', 'e']
myorder = [3, 2, 0, 1, 4]
mylist = [mylist[i] for i in myorder]
print(mylist)         # prints: ['d', 'c', 'a', 'b', 'e']

23voto

SilentGhost Points 79627
>>> a = [1, 2, 3]
>>> a[0], a[2] = a[2], a[0]
>>> a
[3, 2, 1]

15voto

Mark Points 33086
>>> import random
>>> x = [1,2,3,4,5]
>>> random.shuffle(x)
>>> x
[5, 2, 4, 3, 1]

6voto

L'ordre final est-il défini par une liste d'indices ?

>>> items = [1, None, "chicken", int]
>>> order = [3, 0, 1, 2]

>>> ordered_list = [items[i] for i in order]
>>> ordered_list
[<type 'int'>, 1, None, 'chicken']

edit : meh. AJ était plus rapide... Comment puis-je réorganiser une liste en python ?

3voto

ghostdog74 Points 86060
>>> a=["a","b","c","d","e"]
>>> a[0],a[3] = a[3],a[0]
>>> a
['d', 'b', 'c', 'a', 'e']

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X