2017-09-05 1 views
-1

Warum die Ausführung der folgenden Schritte aus:Drucken Sie eine sortierte Liste

print([7,1,0].sort()) 

produziert:

None 

während der Ausführung der folgenden Schritte aus:

a = [7,1,0] 
a.sort() 
print(a) 

produziert:

[0, 1, 7] 

?

+1

Ich werde keine weitere Antwort hinzufügen, sondern die aktuellen Antworten auf andere Weise angeben: 'sort' ändert die Liste, die Sie ihm geben, gibt aber nichts zurück. 'Sortiert' erstellt eine Kopie der Liste, sortiert die Kopie und gibt die sortierte Kopie zurück. Es lässt die ursprüngliche Liste unverändert. – Carcigenicate

+0

Und nur ein Tipp: Ich habe nicht downvote, aber der Downvote, den Sie haben, ist wahrscheinlich, weil diese Frage durch Überprüfen der Dokumentation hätte beantwortet werden können. *** IMMER *** Überprüfen Sie die Dokumentation, wenn Sie über den Betrieb einer Funktion verwirrt sind. Wenn Sie keine IDE verwenden, die die Dokumente automatisch anzeigt, sollten Sie die Python-Dokumentation während des Schreibens in Ihrem Browser öffnen. – Carcigenicate

Antwort

1

Da im ersten Beispiel print([7,1,0].sort()) Sie Wert von sort() und sort() zurückDruck sind nichts zurück. Während später führen Sie sort() auf der Liste a und drucken dann die Liste a.

Sort() ändert Reihenfolge der Elemente in der Liste a und gibt nichts zurück.

Verwenden Sie sorted(), um die sortierte Liste als Rückgabewert zu erhalten.

2

Da .sort() arbeitet auf der Liste und gibt None, während print(sorted(a)) druckt, was wollen Sie aber die Liste

nicht
2

sort() sortiert die Liste ändern, aber kehrt None. Sie möchten wahrscheinlich sorted.

print(sorted([7,1,0]))

1

Die .sort() Methode sortiert die Liste anstelle und gibt None. Die Liste wird sortiert, weshalb beim Drucken der Liste der erwartete Wert angezeigt wird. print(x.sort()) druckt jedoch das Ergebnis sort(), und sort() gibt None zurück.

Verwandte Themen