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了解回答问题和答案的知识更有价值。编辑:谢谢你的编辑!看起来格雷西·贾斯汀,我没有投反对票。也许是其他人。我只想结束这一切,睡一觉;)