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

Converting nested lists to dictionary with self generated keys

我的列表如下所示:

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

这给我一个语法错误。

总而言之:

当 运行 您的代码:

时,我没有收到任何错误消息
>>> 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)}

我建议在这里使用字典理解来实现你想要的,而且我尝试了你的实现并且没有遇到任何问题(欢迎提供更多详细信息):

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']}

应该这样做

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

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

您的语法错误是由您的变量名try引起的。 try 已经是 python 中的名称。见 try/except