Ответ 1
(Примечание: "хэш" называется "словарем" в Python.)
>>> my_list = [('a', 1), ('b', 2)]
>>> dict(my_list)
{'a': 1, 'b': 2}
Вот как я сейчас конвертирую список кортежей в словарь в Python:
l = [('a',1),('b',2)]
h = {}
[h.update({k:v}) for k,v in l]
> [None, None]
h
> {'a': 1, 'b': 2}
Есть ли лучший способ? Кажется, для этого должен быть один лайнер.
(Примечание: "хэш" называется "словарем" в Python.)
>>> my_list = [('a', 1), ('b', 2)]
>>> dict(my_list)
{'a': 1, 'b': 2}
Конструктор dict
принимает вход точно так же, как у вас есть (ключи/значения).
>>> l = [('a',1),('b',2)]
>>> d = dict(l)
>>> d
{'a': 1, 'b': 2}
В документации :
Например, все они возвращают словарь равен { "one": 1, "two": 2}:
dict(one=1, two=2) dict({'one': 1, 'two': 2}) dict(zip(('one', 'two'), (1, 2))) dict([['two', 2], ['one', 1]])
С dict
пониманием:
h = {k:v for k,v in l}