Comment faire pour obtenir l'index avec la clé en Python dictionnaire?
J'ai la clé d'un dictionnaire python et je veux obtenir l'index correspondant dans le dictionnaire. Supposons que j'ai le dictionnaire suivant,
d = { 'a': 10, 'b': 20, 'c': 30}
Est-il une combinaison de fonctions python afin que je puisse obtenir la valeur de l'indice de 1, compte tenu de la valeur de la clé 'b'?
d.??('b')
Je sais qu'il peut être réalisé avec une boucle ou lambda (avec une boucle embedded). Juste pensé que ça serait plus simple.
Quel est le problème avec
d['b'] vous donnera 20. Mais je veux obtenir la position de la clé dans le dictionnaire, qui est de 1. Et j'ai le dictionnaire créé ordonnée, dictionnaire.
Dans le dictionnaire, les touches sont non-ordonnée. De sorte que vous pourrait obtenir n'importe quelle touche lors de l'itération sur les touches.
Si vous avez commandé dict, puis
Vous n'avez pas mentionné de quelle version de Python vous utilisez. C'est sans doute Python 3, voir python.org/dev/peps/pep-3106 Donc,
d['b']
?d['b'] vous donnera 20. Mais je veux obtenir la position de la clé dans le dictionnaire, qui est de 1. Et j'ai le dictionnaire créé ordonnée, dictionnaire.
Dans le dictionnaire, les touches sont non-ordonnée. De sorte que vous pourrait obtenir n'importe quelle touche lors de l'itération sur les touches.
Si vous avez commandé dict, puis
d.keys().index(k)
devrait le faire.Vous n'avez pas mentionné de quelle version de Python vous utilisez. C'est sans doute Python 3, voir python.org/dev/peps/pep-3106 Donc,
list(d.keys()).index(k)
. Mais heureusement qu'il y a une meilleure solution en Python 3, qui ne nécessite pas la création d'une liste de toutes les touches...OriginalL'auteur chapter3 | 2013-01-26
Vous devez vous connecter pour publier un commentaire.
Utilisation OrderedDicts: http://docs.python.org/2/library/collections.html#collections.OrderedDict
Pour les personnes à l'aide de Python 3
OriginalL'auteur Kiwisauce
Non, il n'y a pas de façon simple parce que Python dictionnaires n'ont pas un ensemble de commande.
De la la documentation:
En d'autres termes, l'index de
b
dépend entièrement de ce qui a été inséré dans et supprimés à partir de la cartographie de l'avant:De Python 2.7, vous pouvez utiliser le
collections.OrderedDict()
type au lieu de cela, si l'ordre d'insertion est importante pour votre application.OriginalL'auteur Martijn Pieters
Dictionnaires python ont pas d'ordre. Vous pouvez utiliser une liste de tuples, comme la structure de données à la place.
Ensuite ce code peut être utilisé pour trouver l'emplacement des touches avec une valeur spécifique
OriginalL'auteur Matt Alcock