我试图转换列表列表:
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]}
我将使用大型列表,是否有一种有效的方法可以做到这一点?
答案 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)}