Вот как я сейчас конвертирую список кортежей в словарь на Python:
l = [('a',1),('b',2)] h = {} [h.update({k:v}) for k,v in l] > [None, None] h > {'a': 1, 'b': 2}
Есть ли лучший способ? Похоже, что для этого должен быть однострочник.
(Примечание: "хэш" в Python называется "словарём".)
Конструктор dict принимает ввод в точности так, как он у вас (кортежи ключ / значение).
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]])
Например, все они возвращают словарь, равный {"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}