13 votes

créer une nouvelle liste sans modifier la liste d'origine

J'ai une liste :

         L=[2,0,4,5]

et je veux créer une nouvelle liste sans modifier L lui-même :

        K= [0,2,4,5]

mais quand j'essaie :

       K=L.sort()
       print(K)

il n'imprime rien, et si j'essaie :

       print(L)

i [0,2,4,5]

Pourquoi K n'est pas =[0,2,4,5] ? et comment puis-je créer une nouvelle liste [0,2,4,5] sans changer L ?

0 votes

Le premier élément que google renvoie pour python list sort explique cela. Avez-vous essayé de le découvrir par vous-même ?

22voto

NPE Points 169956

La procédure suivante permet d'effectuer une copie triée de L et l'assigner à K :

K = sorted(L)

sorted() est une fonction intégrée.

La raison K = L.sort() ne fonctionne pas, c'est que sort() trie la liste en place et renvoie None . C'est pourquoi L finit par être modifié et K finit par être None .

Voici comment vous pourriez utiliser sort() :

K = L[:] # make a copy
K.sort()

0 votes

Est-ce que trié est une méthode de liste ?

0 votes

@user1817310 sorted() est une fonction intégrée, les méthodes sont désignées par . c'est-à-dire L.something()

5voto

Praveen Gollakota Points 8440

Vous devez utiliser la fonction intégrée sorted : sorted(L)

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