2016-09-22 2 views
-1

Der gleiche Code, mehrmals ausgeführt, aber die verschiedenen Ergebnisse erhalten. Warum werden die folgenden Ergebnisse nicht sortiert?Methode von in Python sortiert

enter image description here enter image description here

+3

Bitte senden Sie den Code in der Frage selbst - keinen Link zu einem Bild auf einer externen Seite veröffentlichen. – EJoshuaS

Antwort

1

Sie stellen Ihre Ergebnisse in eine dict - eine Datenstruktur, die keine Reihenfolge der Schlüssel/Werte garantiert. Es scheint, dass Sie sich dessen bewusst sind, nach Ihrem Anruf zu sorted() zu urteilen.

Diese Funktion funktioniert jedoch nicht, wie Sie vermuten: anstatt die Liste (oder iterable, im Allgemeinen) zu ändern, gibt einen neuen zurück. Dokumentation verknüpft mit den obigen Zuständen:

Gibt eine neue sortierte Liste von den Elementen in iterable zurück.

Und da das Ergebnis dieser Funktion keiner Variablen zugewiesen ist, geht es verloren. Alternativ kann Ergebnis direkt als eine Sammlung verwendet werden, in einer for Schleife iterieren, wie folgt aus:

for key in sorted(scores): 
    print(scores[key] + ' had ' + key) 
+1

Es besteht keine Notwendigkeit, .keys zu rufen –

+0

@PadraicCunningham, korrigiert, danke. – Szymon