我的列表列表如下所示:my_list = [[sub_list_1],[sub_list_2],...,[sub_list_n]]所需输出my_dict[1] = [sub_list_1]
my_dict[2] = [sub_list_2]
my_dict[n] = [sub_list_n]我希望字典的键能够自己生成。如何以Pythonic方式实现这一点?我会看某些问题,比如转换字典python中的列表列表Python:列表列表到字典将嵌套列表转换为字典但它们要么提供键列表,要么专注于使用列表中的某些信息作为键。或者,我尝试以这种方式制作键列表:my_keys = list(range(len(my_list)))
my_dict = dict(zip(my_keys,my_list)它有效, 但是,这不起作用:my_dict = dict(zip(list(range(len(my_list))),my_list))这给了我一个语法错误。总结来说:有没有一种方法可以在不显式提供键的情况下生成列表字典?为什么组合代码会引发语法错误,而两步代码却有效?
4 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
我建议使用字典理解来实现您想要的效果,此外,我尝试了您的实现,没有遇到任何问题(非常欢迎更多详细信息):
my_list = [["sub_list_1"],["sub_list_2"],["sub_list_3"]] my_dict = dict(zip(list(range(len(my_list))),my_list)) alternative_dict = {iter:item for iter,item in enumerate(my_list)} print("yours : " + str(my_dict)) print("mine : " + str(alternative_dict))
输出:
yours : {0: ['sub_list_1'], 1: ['sub_list_2'], 2: ['sub_list_3']} mine : {0: ['sub_list_1'], 1: ['sub_list_2'], 2: ['sub_list_3']}
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
运行您的代码时我没有收到错误消息:
>>> my_list = [["hello1"], ["hello2"]]
>>> my_dict = dict(zip(list(range(len(my_list))), my_list))
>>> my_dict
{1: ['hello1'], 2: ['hello2']}
您可以使用字典理解从列表列表创建列表字典:
my_dict = {i: sub_list for i, sub_list in enumerate(my_list)}
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
这应该可以做到
my_dict = {my_list.index(i) + 1: i for i in my_list}
请注意,我添加了+1
从键 1 而不是 0 开始,以满足您的期望
添加回答
举报
0/150
提交
取消