python - 如何更正我的代码以生成嵌套字典?

标签 python dictionary

我正在尝试创建一个嵌套字典。我有一个元组列表(称为“kinetic_parameters”),如下所示:

('New Model','v7','k1',0.1)
('New Model','v8','k2',0.2)
('New Model','v8','k3',0.3)

我需要第二列是外键,值是另一个字典,内键是第三列,值是第四列中的数字。

我目前有:

    for i in kinetic_parameters:
        dict[i[1]]={}
        dict[i[1]][i[2]]=i[3]

但是这段代码不会处理内部字典中的多个键,所以我丢失了一些信息。有人知道如何解决我的问题吗?

我使用的是 Python 2.7,我希望输出如下所示:

{'v7': {'k1': 0.1}, 'v8':{'k2':0.2, 'k3': 0.3}}

最佳答案

使用 defaultdict ,并且不要使用 dict 作为变量名,因为我们需要它来引用字典类型:

import collections
d = collections.defaultdict(dict)
for i in kinetic_parameters:
    d[i[1]][i[2]]=i[3]

这将自动创建字典。

关于python - 如何更正我的代码以生成嵌套字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30967100/

相关文章:

python - 为 python2.6 安装 mysqldb 时出现问题

python - 为什么可变实体不能是字典键?

当它是一个数字时,Python 从字典中删除一个键

python - 反转字典中的键和值

python - 比较两个字典中的更多值

C# 确定字典中的值

python - 有什么方法可以使用 boto3 将文件直接写入 S3?

python - 打印二叉树中从根开始的最长路径

python - py.test conftest - 根据 sys.argv 修改 fixture 参数

python - 垂直滚动条django-tables2