Heim  >  Artikel  >  Backend-Entwicklung  >  So indizieren Sie sequenziell ein Wörterbuch in Python 3.7 und höher

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

Barbara Streisand
Barbara StreisandOriginal
2024-10-17 18:10:02769Durchsuche

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>
  • 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>

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!

Stellungnahme:
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