L'accès dict_keys élément à l'index en Python3

J'essaye d'accéder à un dict_key de l'élément par son indice:

test = {'foo': 'bar', 'hello': 'world'}
keys = test.keys()  # dict_keys object

keys.index(0)
AttributeError: 'dict_keys' object has no attribute 'index'

Je veux obtenir foo.

même avec:

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

Comment puis-je faire cela?

  • Dans py3.x dict.keys() retourne un jeu comme objet de vue, pas de liste(donc, l'indexation n'est pas possible). Utilisation keys = list(test)
  • quand je fais la liste(something_dict), le n-uplet de l'ordre est aléatoire: exemple: liste({'toto': 'bar', 'bonjour': 'monde'}) peuvent retourne: liste(toto, bonjour) ou de la liste(bonjour, foo), pourquoi est-ce aléatoire?
  • Dicts n'ont pas de ordonnance.(Utiliser collections.OrderedDict si vous voulez clés des commandes)
  • Intéressante discussion sur la sécurité des threads ici sur les différentes approches pour résoudre ce problème: blog.labix.org/2008/06/27/...
InformationsquelleAutor fj123x | 2013-08-31