嵌套列表到python中的嵌套字典

时间:2014-08-30 15:35:14

标签: python list dictionary data-structures

我有一个看似棘手的问题,但可能是一个非常简单的解决方案。

我有一个嵌套列表,我希望每个列表的第一个值都是字典中的键。我希望将该列表中包含的所有其他元素添加为该键的值。

以下是嵌套列表的示例:

stations[[1, 'carnegie', 12345, 30],[2, 'london', 12344, 30], [4, 'berlin', 1345563, 30]]

我希望以下列格式将其转换为字典:

stations {1:['carnegie', 12345, 30], 2:['london', 12344, 30], 4:['berlin', 1345563, 30]}

嵌套列表非常大,所以我只在此处作为示例包含:)

我目前的尝试已经产生了最佳选择:

newDict = dict.fromkeys(stations,{})

这给了我:

{1: {}, 2:{}, 4:{}}

我不知道如何将键和值组合起来制作我理想的词典。

对此的任何帮助都会很棒。

修改

要添加,我希望能够像下面提供的当前解决方案一样为字典指定变量名称:

{i[0] : i[1:] for i in stations}

这给了我一个循环中的正确输出,但是当我在循环中为它分配一个变量时,它给了我最后一个键:字典中的值

newDict = {}
 for y in stations:
   newDict = {y[0] : y[1:]}

print newDict

返回:

{4: ['berlin', 1345563, 30]}

谢谢!

2 个答案:

答案 0 :(得分:3)

>>> stations = [[1, 'carnegie', 12345, 30],[2, 'london', 12344, 30], [4, 'berlin', 1345563, 30]]

您可以使用dict理解

>>> {i[0] : i[1:] for i in stations}
{1: ['carnegie', 12345, 30], 2: ['london', 12344, 30], 4: ['berlin', 1345563, 30]}

答案 1 :(得分:1)

使用dict理解:

{i[0]: i[1:] for i in stations}
相关问题