Подтвердить что ты не робот

Список кортежей в словарь

Вот как я сейчас конвертирую список кортежей в словарь в Python:

l = [('a',1),('b',2)]
h = {}
[h.update({k:v}) for k,v in l]
> [None, None]
h
> {'a': 1, 'b': 2}

Есть ли лучший способ? Кажется, для этого должен быть один лайнер.

4b9b3361

Ответ 1

(Примечание: "хэш" называется "словарем" в Python.)

>>> my_list = [('a', 1), ('b', 2)]
>>> dict(my_list)
{'a': 1, 'b': 2}

Ответ 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]])

Ответ 3

С dict пониманием:

h = {k:v for k,v in l}