将列表列表转换为列表字典

And*_*arl 2 python dictionary list

我正在尝试转换列表列表:

x = [[1, 2], [1, 3], [1, 3, 4], [1, 2, 5]]
Run Code Online (Sandbox Code Playgroud)

到列表字典,其中每个列表的索引是字典的关键字(从1开始):

new_dictionary = {1: [1, 2], 2: [1, 3], 3: [1, 3, 4], 4: [1, 2, 5]}
Run Code Online (Sandbox Code Playgroud)

我将处理大量列表,是否有一种有效的方法?

And*_*zlo 5

是的,dict构造函数采用一个可重复的元组,其中第一项是键,第二项是值。

这正是enumerate返回的内容:

new_dictionary = dict(enumerate(x))
Run Code Online (Sandbox Code Playgroud)

然后new_dictionary将包含:

{0: [1, 2], 1: [1, 3], 2: [1, 3, 4], 3: [1, 2, 5]}
Run Code Online (Sandbox Code Playgroud)

请注意,第一个键0不是1。如果要从一个或其他开始,请将该start=1参数与结合使用enumerate

>>> dict(enumerate(x, start=1))
{1: [1, 2], 2: [1, 3], 3: [1, 3, 4], 4: [1, 2, 5]}
Run Code Online (Sandbox Code Playgroud)

但是,我对您的用例感到好奇,因为列表和字典可以以非常相似的方式使用:

>>> x[0]
[1, 2]
>>> new_dictionary[0]
[1, 2]
Run Code Online (Sandbox Code Playgroud)

您确定为此确实需要字典吗?

  • 使用`start = 1`,那么很好(假设OP _really_希望这样) (2认同)