Разделить список на словарь

Есть список:

['Tim: 350', 'Jane: 200', 'Alex: 400']

Как сделать из него такого рода словарь?:

{"Tim": 350, "Jane": 200, "Alex": 400}

Указанный список - не полный. На деле он больше, но меньше 100 строк.


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

Автор решения: Зарина

Вообще - изучите язык python, эта задача решается базовыми функциями. Изучите метод split, циклы.

x = ['Tim: 350', 'Jane: 200', 'Alex: 400']
z = {a.split()[0]:int(a.split()[1]) for a in x}
→ Ссылка
Автор решения: Zhihar
arr = ['Tim: 350', 'Jane: 200', 'Alex: 400']

вариант 1:

res = dict((a := v.split(), (a[0][:-1], int(a[1])))[1] for v in arr)

вариант 2:

res = {a[:-1]:int(b) for a, b in map(str.split, arr)}

вариант 2.1 (понадёжнее, если в строке может быть несколько компонент:

res = {v[0][:-1]:int(v[1]) for v in map(str.split, arr)}

вариант 3: изврат без for

res = dict(zip(list(zip(*map(str.split, arr)))[0], map(int, list(zip(*map(str.split, arr)))[1])))
→ Ссылка
Автор решения: Stanislav Volodarskiy

Крохотная функция parse преобразует строку 'Tim: 350' в пару ('Tim', 350):

def parse(s):
    k, v = s.split(': ')
    return k, int(v)

Напускаем её на список строк. Получается (не) список пар ('Tim', 350), ('Jane', 200), ('Alex', 400). Его передаём в конструктор dict:

lst = ['Tim: 350', 'Jane: 200', 'Alex: 400']
d = dict(map(parse, lst))
print(d)    
{'Tim': 350, 'Jane': 200, 'Alex': 400}
→ Ссылка