我有一个列表列表:[['1','Kate','Green','North'],['2','John','Blue','North'],['3' ,“简”,“红色”,“北南方”],['4','刘易斯','蓝色','东部']]
我想制作字典:{'1':['Kate','Green','North'],'2':['John','Blue','North'],'3': ['Jane','Red','NorthSouth'],4:['Lewis','Blue','East']}
当前,我的代码是:
def li2dict(li):
final_dict = {}
for i in range(len(li)):
for j in range(len(li[j])):
roster_dict[li[j][0]] = li[j][k]
print(final_dict)
但是,我得到的是:{'1':'North','2':'North','3':'NorthSouth','4':'East'}谁能帮助我解决这个逻辑错误?
编辑1:仅供参考,我不允许导入任何库。
编辑2:我也尝试过:
roster_dict[contents[j][0]].append(contents[j][k])
但是我得到:
File "test.py", line 54, in <module>
main()
File "test.py", line 51, in main
li2dict([listinfo])
File "test.py", line 44, in li2dict
roster_dict[contents[j][0]].append(contents[j][k])
KeyError: '1'
尝试使用dict理解:
d = {i[0]: i[1:] for i in li}
print(d)
{'1': ['Kate', 'Green', 'North'], '2': ['John', 'Blue', 'North'], '3': ['Jane', 'Red', 'NorthSouth'], '4': ['Lewis', 'Blue', 'East']}
好像您的问题已经回答了,但是这里的另一个答案与您的格式更相似,可以帮助您更好地理解逻辑。
old_list = [['1','Kate','Green','North'],['2','John','Blue','North'],['3','Jane','Red','NorthSouth'],['4','Lewis','Blue','East']]
def dict_conversion(list_variable):
dict = {}
for list in list_variable:
index_position = list[0]
list_content = list[1:]
dict[index_position] = list_content
print(dict)
return dict
dict_conversion(old_list)