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

时间:2016-05-04 09:10:09

标签: python list dictionary

我试图转换列表列表:

x = [[1, 2], [1, 3], [1, 3, 4], [1, 2, 5]]

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

new_dictionary = {1: [1, 2], 2: [1, 3], 3: [1, 3, 4], 4: [1, 2, 5]}

我将使用大型列表,是否有一种有效的方法可以做到这一点?

2 个答案:

答案 0 :(得分:4)

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

这正是enumerate返回的内容:

new_dictionary = dict(enumerate(x))

然后new_dictionary将包含:

{0: [1, 2], 1: [1, 3], 2: [1, 3, 4], 3: [1, 2, 5]}

请注意,第一个键是0,而不是1。如果您想从一个或其他内容开始,请将start=1参数与enumerate一起使用:

>>> dict(enumerate(x, start=1))
{1: [1, 2], 2: [1, 3], 3: [1, 3, 4], 4: [1, 2, 5]}

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

>>> x[0]
[1, 2]
>>> new_dictionary[0]
[1, 2]

你确定你真的需要一本字典吗?

答案 1 :(得分:1)

你应该像这样使用dict comprehension

new_dictionary = {index + 1: value for index, value in enumerate(x)}