So indizieren Sie sequenziell ein Wörterbuch in Python 3.7 und höher

Barbara Streisand
Freigeben: 2024-10-17 18:10:02
Original
867 Leute haben es durchsucht

How to Index into a Dictionary Sequentially in Python 3.7 and Later

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:

  • In eine Liste konvertieren: Erstellen Sie eine Liste entweder der Schlüssel oder Werte und greifen Sie wie folgt auf das erste Element zu:
<code class="python">first_key = list(colors)[0]
first_val = list(colors.values())[0]</code>
Nach dem Login kopieren
  • Verwenden Sie eine benutzerdefinierte Funktion: Definieren Sie eine Hilfsfunktion, um die Tasten zu durchlaufen und den gewünschten Eintrag basierend auf seinem Index zurückzugeben:
<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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage