Преобразовать из списка в словарь

Как из списка сделать словарь?
из

['a 1', 'b 2', 'c 3']

сделать

{'a': 1, 'b': 2, 'c': 3}

Как именно сделать, чтобы ключом была буква?


Ответы (3 шт):

Автор решения: Danis

попробуйте так:

arr = ['a 1', 'b 2', 'c 3']
res = {}
for el in arr:
    key, value = el.split()
    res[key] = int(value)

либо так в одну строку:

res = {key: int(value) for key, value in map(str.split, arr)} 
→ Ссылка
Автор решения: Victor VosMottor

Решение с пояснением:

l = ['a 1', 'b 2', 'c 3'] # Создадим список
d = {} # "Заготовим" словарь
for i in l: # Пройдет по всем его элементам с помощью цикла for
    key, val = i.split(' ') # Pазобьем каждый элемент через пробел
    d[key] = int(val) # Добавим пару ключ значение в словарь предварительно превратив значение из строки в число 
→ Ссылка
Автор решения: splash58

достаточно сделать split и отдать в конструктор словаря

>>> dict(map(str.split, ['a 1', 'b 2', 'c 3']))
{'a': '1', 'b': '2', 'c': '3'}

чтобы значения были числами

>>> dict((k,int(v)) for k, v in map(str.split, , ['a 1', 'b 2', 'c 3']))
{'a': 1, 'b': 2, 'c': 3}
→ Ссылка