Список кортежей в словарь - PullRequest
68 голосов
/ 29 июня 2011

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

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

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

Ответы [ 3 ]

119 голосов
/ 29 июня 2011

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

22 голосов
/ 29 июня 2011

Конструктор 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]])
8 голосов
/ 18 октября 2016

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

h = {k:v for k,v in l}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...