Помогите создать словарь в Python
Я в питоне новичок, поэтому прошу вашей помощи. У меня есть список, элементы в котором выглядят следующим образом
26810,"[email protected]","[""First value"",""Second value""]","0","0","","",""
По сути в элементе есть список. Я хочу из всех элементов этого списка создать словарь в формате:
{26810: ('[email protected]','[First value, Second value]', '0', '0', '', '', '')
26811: ('[email protected]','[First value, Second value]', '0', '0', '', '', '')}
Я смог сделать это для одного элемента из списка
First_dict = {}
First_dict[literal_eval(first_list[2])[0]] = literal_eval(first_list[2])[1:],
однако не могу понять как сделать это циклом. Уже думал собирать два отдельных листа с ключом, второй с остальными данными, но есть риск что получится каша. Буду рад любой помощи!
Ответы (3 шт):
Автор решения: A_Vaclav
→ Ссылка
first_list = [[26810, '[email protected]', '[''First value, Second value'']',
'0', '0', '', '', ''],
[26811, '[email protected]', '[''First value, Second value'']',
'0', '0', '', '', '']
]
First_dict = {}
for i in range(len(first_list)):
First_dict[first_list[i][0]] = first_list[i][1::]
print(First_dict)
>>>{26810: ['[email protected]', '[First value, Second value]', '0', '0', '',
'', ''],
26811: ['[email protected]', '[First value, Second value]', '0', '0',
'', '', '']
}
Автор решения: Getteg
→ Ссылка
literal_eval = [[26810, ('[email protected]','[First value, Second value]', '0', '0', '', '', '')],
[26811, ('[email protected]','[First value, Second value]', '0', '0', '', '', '')]]
my_dict = {}
for i in range(len(literal_eval)):
my_dict[literal_eval[i][0]] = literal_eval[i][1:]
for k,v in my_dict.items():
print(k, '-', v)
26810 - [('[email protected]', '[First value, Second value]', '0', '0', '', '', '')]
26811 - [('[email protected]', '[First value, Second value]', '0', '0', '', '', '')]
Автор решения: SergFSM
→ Ссылка
еще вариант, на pandas, правда без цикла:
import pandas as pd
first_list = [[26810,"[email protected]","[""First value"",""Second value""]","0","0","","",""],
[26811,"[email protected]","[""First value"",""Second value""]","0","0","","",""]]
df = pd.DataFrame(first_list).set_index(0)
first_dict = df.apply(lambda x:tuple(x),axis=1).to_dict()
print(first_dict)
вывод:
{26810: ('[email protected]', '[First value,Second value]', '0', '0', '', '', ''),
26811: ('[email protected]', '[First value,Second value]', '0', '0', '', '', '')}