我有什么似乎是一个棘手的问题,但可能很简单的解决方案。在Python中嵌套的字典嵌套的列表
我有一个嵌套列表,我希望每个列表中包含的第一个值是字典中的键。我希望将该列表中包含的所有其他元素作为值添加到该密钥中。
这里是嵌套列表的一个示例:
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]}
谢谢!
在Python 3,你可以使用扩展的迭代解包语法,以避免指数和切片,如果你想:'{键:键值,*值在电台}' – Blckknght 2014-08-30 15:50:02
这是做这项工作。但是,当我试图将该循环的结果分配给一个变量时,它只给出了最后一个键和它的元素。即:'print newDict'返回'{4:['berlin',1345563,30]}'有没有办法来解决这个问题? – 2014-08-30 15:58:21
@BenW dict-comp已经*了* a *循环* - 你在循环中所做的一切就是不断创建一个新的字典,每一个回合都有一个单独的条目...拿cyber的代码做:'newDict = {i [0]:我[1:]因为我在电台}' - 那里亚去...全部完成... – 2014-08-30 16:13:34