Indizierung in ein Wörterbuch: Ein Ansatz für Python 3.7 und höher
In einem Wörterbuch ist der Zugriff auf Werte per Schlüssel der typische Vorgang. In manchen Fällen kann es jedoch wünschenswert sein, die Einträge eines Wörterbuchs der Reihe nach zu indizieren, als wäre es eine Liste. Im Gegensatz zu Listen verfügen Wörterbücher jedoch nicht über eine inhärente Reihenfolge.
Wörterbücher vor Python 3.7
In Python-Versionen vor 3.7 waren Wörterbücher nicht geordnet und es wurde nicht darauf zugegriffen Der erste Eintrag, der einen Index wie „colors[0]“ verwendet, würde zu einem KeyError führen.
Geordnete Wörterbücher in Python 3.7 und höher
Ab Python 3.7 sind Wörterbücher geworden reihenfolgeerhaltend, das heißt, sie behalten die Reihenfolge der Einfügung bei. Dieses Verhalten ähnelt einem OrderedDict aus dem Sammlungsmodul.
Zugriff auf den ersten Eintrag
Trotz der neuen Reihenfolge gibt es immer noch keine dedizierte Methode für die Indizierung in einem Wörterbuch Schlüssel oder Werte direkt eingeben. Es können jedoch die folgenden Ansätze verwendet werden:
<code class="python">first_key = list(colors)[0] first_val = list(colors.values())[0]</code>
<code class="python">def get_first_key(dictionary): for key in dictionary: return key raise IndexError first_key = get_first_key(colors) first_val = colors[first_key]</code>
Zugriff auf den n-ten Eintrag
Für die Indizierung in Schlüssel oder Werte über den ersten hinaus kann ein ähnlicher benutzerdefinierter Funktionsansatz verwendet werden:
<code class="python">def get_nth_key(dictionary, n=0): if n < 0: n += len(dictionary) for i, key in enumerate(dictionary.keys()): if i == n: return key raise IndexError("dictionary index out of range") </code>
Durch Verwendung dieser Mit diesen Ansätzen können Sie Wörterbücher ähnlich wie Listen indizieren, auch wenn Wörterbücher nicht von Natur aus geordnet sind.
Das obige ist der detaillierte Inhalt vonSo indizieren Sie sequenziell ein Wörterbuch in Python 3.7 und höher. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!