Accès à la valeur du dictionnaire par index en python
j'aimerais obtenir la valeur par l'index des clés à partir d'un dictionnaire Python. Est-il possible d'obtenir en quelque chose comme cela?
dic = {}
value_at_index = dic.ElementAt(index)
où index
est un entier
P.S. poser des questions signifie un manque de compréhension, surtout si c'est un nouveau langage, alors à quoi sert le vote négatif, les amis? :(
ElementAt
est largement utilisé en C # Linq
3 réponses
les dictionnaires Python Standard ne sont pas Classés par nature, donc ce que vous demandez n'a pas vraiment de sens.
si vous savez vraiment, vraiment ce que vous faites, utilisez
value_at_index = dic.values()[index]
gardez à l'esprit que l'ajout ou la suppression d'un élément peut potentiellement modifier l'index de tous les autres éléments.
si vous voulez vraiment juste une valeur aléatoire de la gamme de clés disponibles, utilisez random.choice
sur les valeurs du dictionnaire (converties en liste, si Python 3).
>>> from random import choice
>>> d = {1: 'a', 2: 'b', 3: 'c'}
>>>> choice(list(d.values()))
Alors que vous pouvez le faire
value = d.values()[index]
Il devrait être plus rapide à faire
value = next( v for i, v in enumerate(d.itervalues()) if i == index )
edit: je viens de le chronométrer en utilisant un dict de Len 100,000,000 vérifiant l'index à la toute fin, et la version 1st/values() a pris 169 secondes alors que la version 2nd/next() a pris 32 secondes.