Ich bin etwas verwirrt bezüglich der Datenstruktur in Python. ()
, []
Und {}
. Ich versuche, eine einfache Liste zu sortieren, wahrscheinlich da ich den Datentyp nicht identifizieren kann, kann ich ihn nicht sortieren.
Meine Liste ist einfach: ['Stem', 'constitute', 'Sedge', 'Eflux', 'Whim', 'Intrigue']
Meine Frage ist, um welche Art von Daten es sich handelt und wie die Wörter alphabetisch sortiert werden.
python
list
sorting
alphabetical
icypy
quelle
quelle
[]
schließt den eingebauten Datentyp einlist
(siehe tutorialspoint.com/python/python_lists.htm ). Listen sind nur Gruppen von Werten (sie können andere iterierbare Objekte enthalten, dh verschachtelte Listen).()
schließt das eingebaute eintuple
. Sie sind unveränderlich (können nicht geändert werden). (Siehe tutorialspoint.com/python/python_tuples.htm ). Und{}
schließt das eingebaute eindictionary
. Parallelen zu einem Wörterbuch (für Wörter), wobei ein 'Schlüssel' das Wort und der 'Wert' die Definition ist. (Siehe tutorialspoint.com/python/python_dictionary.htm ).Antworten:
[]
bezeichnet eine Liste ,()
bezeichnet ein Tupel und{}
bezeichnet ein Wörterbuch . Sie sollten sich das offizielle Python-Tutorial ansehen, da dies die Grundlagen der Programmierung in Python sind.Was Sie haben, ist eine Liste von Zeichenfolgen. Sie können es so sortieren:
Wie Sie sehen können, werden Wörter, die mit einem Großbuchstaben beginnen, gegenüber Wörtern bevorzugt, die mit einem Kleinbuchstaben beginnen. Wenn Sie sie unabhängig voneinander sortieren möchten, gehen Sie folgendermaßen vor:
Sie können die Liste auch in umgekehrter Reihenfolge sortieren:
Bitte beachten Sie: Wenn Sie mit Python 3 arbeiten,
str
ist dies der richtige Datentyp für jede Zeichenfolge, die für Menschen lesbaren Text enthält. Wenn Sie jedoch noch mit Python 2 arbeiten müssen, können Sie sich mit Unicode-Zeichenfolgen befassen, die den Datentypunicode
in Python 2 haben, und nichtstr
. Wenn Sie in einem solchen Fall eine Liste von Unicode-Zeichenfolgen haben, müssen Siekey=unicode.lower
stattdessen schreibenkey=str.lower
.quelle
find_one()
Ergebnis aus einer MongoDB-Datenbank wird folgende Fehlermeldung angezeigt :descriptor 'lower' requires a 'str' object but received a 'unicode'
. Das Ergebnis ist ein Array von Zeichenfolgen, die wie folgt implementiert sind :results['keywords'] = sorted(keywords['keywords'], key=str.lower)
. Weiß jemand, wie man das löst?key=unicode.lower
statt schreibenkey=str.lower
. Dies liegt daran, dass es sich um Unicode-Zeichenfolgen handelt, nicht um Byte-Zeichenfolgen. Weitere Informationen hierzu finden Sie im offiziellen Unicode-HOWTO , insbesondere zu den jeweiligen Unterschieden zwischen Python 2 und 3.Python verfügt über eine integrierte Funktion namens
sorted
, die Ihnen eine sortierte Liste von allen iterierbaren Elementen gibt, die Sie eingeben (z. B. eine Liste ([1,2,3]
); ein Diktat){1:2,3:4}
, obwohl nur eine sortierte Liste der Schlüssel zurückgegeben wird; eine Menge ({1,2,3,4
) oder ein Tupel ((1,2,3,4)
)).Listen haben auch eine
sort
Methode, die die Sortierung direkt durchführt (x.sort () gibt None zurück, ändert aber das x-Objekt).Beide nehmen auch ein
key
Argument an, das aufrufbar sein sollte (Funktion / Lambda), mit dem Sie ändern können, nach was sortiert werden soll.Um beispielsweise eine Liste von
(key,value)
Paaren aus einem Diktat zu erhalten, das nach Wert sortiert ist, können Sie den folgenden Code verwenden:quelle
Sie haben es mit einer Python-Liste zu tun, und das Sortieren ist so einfach wie dies.
quelle
Sie können die integrierte
sorted
Funktion verwenden.quelle
ListName.sort()
wird es alphabetisch sortieren. Sie könnenreverse=False/True
in den Klammern hinzufügen , um die Reihenfolge der Elemente umzukehren:ListName.sort(reverse=False)
quelle
quelle