Zugriff auf dict_keys Element nach Index in Python3

Ich versuche, auf das Element eines dict_key zuzugreifen:

test = {'foo': 'bar', 'hello': 'world'} keys = test.keys() # dict_keys object keys.index(0) AttributeError: 'dict_keys' object has no attribute 'index' 

Ich will foo

Das gleiche mit:

 keys[0] TypeError: 'dict_keys' object does not support indexing 

Wie kann ich das machen?

2 Solutions collect form web for “Zugriff auf dict_keys Element nach Index in Python3”

Anrufliste list() auf dem Wörterbuch statt:

 keys = list(test) 

In Python 3 gibt die Methode dict.keys() ein Wörterbuch-View-Objekt zurück , das als Set fungiert. Itering über das Wörterbuch direkt auch liefert Schlüssel, so drehen ein Wörterbuch in eine Liste führt zu einer Liste aller Schlüssel:

 >>> test = {'foo': 'bar', 'hello': 'world'} >>> list(test) ['foo', 'hello'] >>> list(test)[0] 'foo' 

Nicht eine volle Antwort, aber vielleicht ein nützlicher Hinweis. Wenn es wirklich der erste Artikel ist, den du willst *, dann

 next(iter(q)) 

Ist viel schneller als

 list(q)[0] 

Für große dicts, da die ganze Sache nicht im Gedächtnis gespeichert werden muss.

Für 10.000.000 Artikel habe ich festgestellt, dass es fast 40.000 mal schneller ist.

* Das erste Element im Falle eines Diktats ist nur ein Pseudo-zufälliges Element vor Python 3.6 (danach ist es in der Standard-Implementierung bestellt, obwohl es nicht darauf hingewiesen wird, sich darauf zu verlassen).

  • Wie kannst du deinen Charakter bewegen, ohne wiederholt auf Knöpfe zu tippen?
  • Ändern Sie den Wert eines Wörterbuchs in den Schlüssel eines Wörterbuchs in Python
  • Python entfernen doppelten Wert in einer kombinierten Wörterbuch-Liste
  • Wie wird der Rückgabewert von __hash__ verwendet?
  • Wie bekomme ich einen zufälligen Wert im Python-Wörterbuch
  • Zählen Sie, wie oft ein Teil eines Schlüssels in einem Wörterbuch python erscheint
  • Wie kann ich den Schlüssel eines Wörterbuchs drucken?
  • Django Natural Key für Fixtures geben Deserialisierungsfehler
  • Python-Tupel als Schlüssel langsam?
  • Mehrfachschlüssel im Python-Wörterbuch ist möglich?
  • Python: Konvertieren Sie die Liste, um die Schlüssel für mehrdimensionale Diktate mit Ausnahmebehandlung zu dict
  • Python ist die beste Programmiersprache der Welt.