Si un mydict
n'est pas vide, j'accède à un élément arbitraire comme :
mydict[mydict.keys()[0]]
Y a-t-il une meilleure façon de procéder ?
Sur Python 3, de manière non destructive et itérative :
next(iter(mydict.values()))
Sur Python 2, de manière non destructive et itérative :
mydict.itervalues().next()
Si vous voulez qu'il fonctionne à la fois dans Python 2 et 3, vous pouvez utiliser le paquet six
:
six.next(six.itervalues(mydict))
bien qu'à ce stade il soit assez cryptique et que je préfère votre code.
Si vous voulez supprimer un élément, faites-le :
key, value = mydict.popitem()
Notez que "premier" n'est pas un terme approprié ici. C'est "n'importe quel" élément, parce que "dict" n'est pas un type ordonné.
Comme d'autres l'ont mentionné, il n'y a pas de "premier élément" ;, puisque les dictionnaires n'ont pas d'ordre garanti (ils sont implémentés comme des tables de hachage). Si vous voulez, par exemple, la valeur correspondant à la plus petite clé, thedict[min(thedict)]
le fera. Si vous vous souciez de l'ordre dans lequel les clés ont été insérées, c'est-à-dire que par "premier" vous voulez dire "inséré le plus tôt", alors dans Python 3.1 vous pouvez utiliser [collections.OrderedDict][1], qui est aussi dans le futur Python 2.7 ; pour les versions plus anciennes de Python, téléchargez, installez et utilisez le backport ordered dict (2.4 et plus) que vous pouvez trouver [ici][2].
Python 3.7 [Maintenant][3] les dicts sont ordonnés par insertion.
[1] : http://docs.python.org/py3k/library/collections.html?highlight=collections#collections.OrderedDict [2] : http://pypi.python.org/pypi/ordereddict/1.1 [3] : https://docs.python.org/3/whatsnew/3.7.html#summary-release-highlights
En ignorant les questions relatives à la dictée, cela pourrait être mieux :
next(dict.itervalues())
De cette façon, nous évitons la recherche d'éléments et la génération d'une liste de clés que nous n'utilisons pas.
next(iter(dict.values()))