2012-11-26 13 views
7

Ändern Ich habe eine Liste:neue Liste erstellen, ohne die ursprüngliche Liste

  L=[2,0,4,5] 

und ich möchte eine neue Liste erstellen, ohne ändern L selbst:

 K= [0,2,4,5] 

aber wenn ich versuche:

 K=L.sort() 
     print(K) 

druckt er nichts, und wenn ich versuche:

es kommt: [0,2,4,5]

warum K nicht = ist [0,2,4,5]? und wie kann ich eine neue Liste erstellen [0,2,4,5] und L nicht ändern?

+0

Der erste Punkt google Rückkehr für 'Python Liste sort' dies erklärt. Hast du das selbst herausgefunden? –

Antwort

4

Sie benötigen die eingebaute Funktion verwenden sorted: sorted(L)

13

Nachfolgend eine sortierte Kopie L machen und weisen es K:

K = sorted(L) 

sorted() ist eine eingebaute Funktion.

Der Grund K = L.sort() nicht funktioniert ist, dass sort() sortiert die Liste anstelle und kehrt None. Aus diesem Grund wird L am Ende geändert und K endet als None.

Hier ist, wie Sie sort() verwenden:

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

ist eine Methode der Liste sortiert? – user1817310

+0

Nein, es ist ein eingebauter. http://docs.python.org/2/library/functions.html#sorted – NPE

+0

@ user1817310 'sorted()' ist eine eingebaute Funktion, Methoden werden mit '.' bezeichnet, dh' L.irgendwas() ' –

Verwandte Themen