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

我的列表列表如下所示:

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方式实现这一点?

我会看某些问题,比如

但它们要么提供键列表,要么专注于使用列表中的某些信息作为键。

或者,我尝试以这种方式制作键列表:

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

这给了我一个语法错误。

总结来说:

  • 有没有一种方法可以在不显式提供键的情况下生成列表字典?

  • 为什么组合代码会引发语法错误,而两步代码却有效?


沧海一幻觉
浏览 129回答 4
4回答

翻过高山走不出你

我建议使用字典理解来实现您想要的效果,此外,我尝试了您的实现,没有遇到任何问题(非常欢迎更多详细信息):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']}

一只甜甜圈

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

摇曳的蔷薇

运行您的代码时我没有收到错误消息:>>> 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

这应该可以做到my_dict = {my_list.index(i) + 1: i for i in my_list}请注意,我添加了+1从键 1 而不是 0 开始,以满足您的期望
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python