我有一个看似棘手的问题,但可能是一个非常简单的解决方案。
我有一个嵌套列表,我希望每个列表的第一个值都是字典中的键。我希望将该列表中包含的所有其他元素添加为该键的值。
以下是嵌套列表的示例:
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]}
谢谢!
答案 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}