Voici comment je suis en train de convertir une liste de tuples en dictionnaire en Python:
l = [('a',1),('b',2)]
h = {}
[h.update({k:v}) for k,v in l]
> [None, None]
h
> {'a': 1, 'b': 2}
Y a-t-il un meilleur moyen? Il semble qu'il devrait y avoir un one-liner pour le faire.
(Remarque: un "hash" s'appelle un "dictionnaire" en Python.)
>>> my_list = [('a', 1), ('b', 2)]
>>> dict(my_list)
{'a': 1, 'b': 2}
Le constructeur dict
accepte les entrées exactement telles que vous les avez (tuples clé/valeur).
>>> l = [('a',1),('b',2)]
>>> d = dict(l)
>>> d
{'a': 1, 'b': 2}
De la documentation :
Par exemple, ils renvoient tous un dictionnaire égal à {"un": 1, "deux": 2}:
dict(one=1, two=2) dict({'one': 1, 'two': 2}) dict(Zip(('one', 'two'), (1, 2))) dict([['two', 2], ['one', 1]])
Avec dict
compréhension:
h = {k:v for k,v in l}