letters - python sigma symbol



Python-Datenstruktur sortiert die Liste alphabetisch (4)

Ich bin ein wenig verwirrt in Bezug auf die Datenstruktur in Python; () , [] und {} . Ich versuche, eine einfache Liste zu sortieren, wahrscheinlich, weil ich den Typ der Daten nicht identifizieren kann, die ich nicht sortieren kann.

Meine Liste ist einfach: ['Stem', 'constitute', 'Sedge', 'Eflux', 'Whim', 'Intrigue']

Meine Frage ist, um welche Art von Daten es sich handelt und wie man die Wörter alphabetisch sortiert?


Answer #1

Python hat eine eingebaute Funktion namens sorted , die Ihnen eine sortierte Liste von jedem iterierbaren Programm gibt (zB eine Liste ( [1,2,3] ); ein dict ( {1:2,3:4} , obwohl es nur eine sortierte Liste der Schlüssel zurückgibt, eine Menge ( {1,2,3,4 ); oder ein Tupel ( (1,2,3,4) )).

>>> x = [3,2,1]
>>> sorted(x)
[1, 2, 3]
>>> x
[3, 2, 1]

Listen haben auch eine sort , die die Sortierung direkt ausführt.

>>> x = [3,2,1]
>>> x.sort()
>>> x
[3, 2, 1]

Beide nehmen auch ein key , das eine aufrufbare (Funktion / Lambda) sein sollte, die Sie verwenden können, um zu ändern, nach was sortiert werden soll.
Um beispielsweise eine Liste von (key,value) Paaren aus einem nach Wert sortierten Diktat zu erhalten, können Sie den folgenden Code verwenden:

>>> x = {3:2,2:1,1:5}
>>> sorted(x.items(), key=lambda kv: kv[1])  # Items returns a list of `(key,value)`-pairs
[(2, 1), (3, 2), (1, 5)]

Answer #2

Sie haben es mit einer Python-Liste zu tun, und das Sortieren ist so einfach wie das.

my_list = ['Stem', 'constitute', 'Sedge', 'Eflux', 'Whim', 'Intrigue']
my_list.sort()

Answer #3

ListName.sort() sortiert sie alphabetisch. Sie können in den Klammern reverse=False/True hinzufügen, um die Reihenfolge der Elemente ListName.sort(reverse=False) : ListName.sort(reverse=False)


Answer #4

[] bezeichnet eine list , () bezeichnet ein tuple und {} bezeichnet ein dictionary . Sie sollten sich das offizielle Python-Tutorial ansehen, da dies die Grundlagen der Programmierung in Python sind.

Was Sie haben, ist eine Liste von Strings. Sie können es so sortieren:

In [1]: lst = ['Stem', 'constitute', 'Sedge', 'Eflux', 'Whim', 'Intrigue']

In [2]: sorted(lst)
Out[2]: ['Eflux', 'Intrigue', 'Sedge', 'Stem', 'Whim', 'constitute']

Wie Sie sehen, erhalten Wörter, die mit einem Großbuchstaben beginnen, Vorrang vor denen, die mit einem Kleinbuchstaben beginnen. Wenn Sie sie unabhängig voneinander sortieren möchten, tun Sie Folgendes:

In [4]: sorted(lst, key=str.lower)
Out[4]: ['constitute', 'Eflux', 'Intrigue', 'Sedge', 'Stem', 'Whim']

Sie können die Liste auch in umgekehrter Reihenfolge sortieren, indem Sie Folgendes tun:

In [12]: sorted(lst, reverse=True)
Out[12]: ['constitute', 'Whim', 'Stem', 'Sedge', 'Intrigue', 'Eflux']

In [13]: sorted(lst, key=str.lower, reverse=True)
Out[13]: ['Whim', 'Stem', 'Sedge', 'Intrigue', 'Eflux', 'constitute']

Bitte beachten Sie: Wenn Sie mit Python 3 arbeiten, ist str der richtige Datentyp für jede Zeichenkette, die lesbaren Text enthält. Wenn Sie jedoch weiterhin mit Python 2 arbeiten müssen, können Sie Unicode-Strings mit dem Datentyp unicode in Python 2 verwenden und nicht str . In diesem Fall müssen Sie, wenn Sie eine Liste von Unicode-Zeichenfolgen haben, key=unicode.lower anstelle von key=str.lower .





alphabetical