为了账号安全,请及时绑定邮箱和手机立即绑定

使用自行生成的键将嵌套列表转换为字典

使用自行生成的键将嵌套列表转换为字典

沧海一幻觉 2023-09-26 16:46:49
我的列表列表如下所示: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']}


查看完整回答
反对 回复 2023-09-26
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

您的语法错误是由您的变量名称引起的trytry已经是Python中的一个名字了。

查看完整回答
反对 回复 2023-09-26
?
摇曳的蔷薇

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)}


查看完整回答
反对 回复 2023-09-26
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

这应该可以做到

my_dict = {my_list.index(i) + 1: i for i in my_list}

请注意,我添加了+1从键 1 而不是 0 开始,以满足您的期望


查看完整回答
反对 回复 2023-09-26
  • 4 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信