列表列表到字典
List of List to Dictionary
我有一个列表列表:[['1','Kate','Green','North'],['2','John','Blue','North'],['3','Jane','Red','NorthSouth'],['4','Lewis','Blue','East']]
我想制作字典:{'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'
尝试使用听写理解:
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)
我有一个列表列表:[['1','Kate','Green','North'],['2','John','Blue','North'],['3','Jane','Red','NorthSouth'],['4','Lewis','Blue','East']]
我想制作字典:{'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'
尝试使用听写理解:
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)