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

Python 使用自生成键将嵌套列表转换为字典,python,dictionary,nested-lists,Python,Dictionary,Nested Lists,我的列表如下所示: 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] 我希望字典的键能够自己生成。如何以蟒蛇的方式实现这一点 我看一些问题,比如 但它们要么提供一个键列表,要么专注于使用列表中的一些信息作为键 或者,我尝试以这种方式制作一个键列表: my_ke

我的列表如下所示:

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]
我希望字典的键能够自己生成。如何以蟒蛇的方式实现这一点

我看一些问题,比如

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

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

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))
这给了我一个语法错误

总而言之:

  • 是否有一种方法可以在不显式提供键的情况下生成列表字典
  • 为什么组合代码会抛出语法错误,而两步代码可以工作

我在运行代码时没有收到错误消息:

>>我的列表=[[“hello1”],[“hello2”]]
>>>my_dict=dict(zip(list(range(len(my_list))),my_list))
>>>我的字典
{1:['hello1'],2:['hello2']}
您可以使用目录理解从列表列表创建列表目录:

my_dict={i:sub_list for i,sub_list in enumerate(my_list)}

我在运行代码时没有收到错误消息:

>>我的列表=[[“hello1”],[“hello2”]]
>>>my_dict=dict(zip(list(range(len(my_list))),my_list))
>>>我的字典
{1:['hello1'],2:['hello2']}
您可以使用目录理解从列表列表创建列表目录:

my_dict={i:sub_list for i,sub_list in enumerate(my_list)}

我建议在这里使用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']}

我建议在这里使用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']}
这应该可以

my_dict={my_list.index(i)+1:i代表我的_list中的i}
请注意,我添加了
+1
以从键1开始,而不是从0开始,以符合您的期望

这应该可以做到

my_dict={my_list.index(i)+1:i代表我的_list中的i}


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

您的语法错误是由变量名
try
引起的
try
是python中的一个名称。请参见

您的语法错误是由变量名引起的
try
try
是python中的一个名称。有关错误的详细信息,请参见

my_dict=dict(zip(list(range(len(my_list))),my_list))
对我来说效果很好。my_dict=dict(zip(list(range(len(my_list))),my_list))^SyntaxError:无效的语法这对我来说也很好(从你的评论中粘贴的副本):
my_list=[[hello1],[hello2]]my_dict=dict(zip(list(range(len,my_list)),my_list))
您能为我们提供更多的代码吗?该行不应该有任何错误。
try
是python中的保留字(try-catch语句)有关错误的详细信息
my_dict=dict(zip(list(range(len(my_list))),my_list))
对我来说效果很好。my_dict=dict(zip(list(range(len(my_list))),my_list))^SyntaxError:无效的语法这对我来说也很好(从你的评论中粘贴的副本):
my_list=[[hello1],[hello2]]my_dict=dict(zip(list(range(len,my_list)),my_list))
您能为我们提供更多的代码吗?这行应该没有什么问题。
try
是python中的保留字(try-catch语句),我相信使用
.index()
会比
enumerate(list)
慢,反之亦然。同时枚举索引和值的检查。因此,
.index
解决方案比使用
enumerate
快1/3,因为后者会检查值2次。噢!很有趣,谢谢。“定律”的名称是什么?通过发布错误的答案,你可以最快找到正确的答案我相信使用
.index()
会比
枚举(列表)
慢,反之亦然。同时枚举索引和值的检查。因此,
.index
解决方案比使用
enumerate
快1/3,因为后者会检查值2次。噢!很有趣,谢谢。发布错误答案最快找到正确答案的“定律”的名称是什么?:)>有没有一种方法可以在不显式提供键的情况下生成一个列表字典;您回答了语法错误部分,我演示了如何从没有定义键的列表列表中生成列表的dict。是的,我又读了一遍这个问题。请原谅我的错误。虽然你也没有对你的代码做任何解释。我理解,我只是相信让OP了解回答问题和答案的知识更有价值。编辑:谢谢你的编辑!看起来格雷西·贾斯汀,我没有投反对票。也许是其他人。我只想结束这一切,然后睡觉;)>有没有一种方法可以在不显式提供键的情况下生成一个列表字典;您回答了语法错误部分,我演示了如何从没有定义键的列表列表中生成列表的dict。是的,我又读了一遍这个问题。请原谅我的错误。虽然你也没有对你的代码做任何解释。我理解,我只是相信让OP了解回答问题和答案的知识更有价值。编辑:谢谢你的编辑!看起来格雷西·贾斯汀,我没有投反对票。也许是其他人。我只想结束这一切,睡一觉;)