繁体   English   中英

将列表列表转换为嵌套字典

[英]convert list of lists into nested dictionary

我有如下列表

l = [( "tx", 'houston', 'richmond'),
("tx", 'dallas', 'lakewood'),
( "tx", 'houston', 'kessler'),
( "tx", 'dallas', 'cedars'),
( "ct", 'hartford', 'wethersfield'),
( "ct", 'hartford', 'parkville'),
( "ct", 'new haven', 'westville'),
( "fl", 'miami', 'gladview'),
("fl", 'orlando', 'parramore'),
( "fl", 'orlando', 'golden heights'),
( "fl", 'miami', 'el portal')]

想知道 pandas 或任何其他将列表列表转换为嵌套字典的库是否有通用解决方案,或者如果有人编写了 function 适用于多级嵌套数据,则每个集合中的元素数量可能更多,所以我需要的是不断迭代并不断追加直到整个列表被转换为嵌套字典的东西

{
    "tx": [
        {"houston": [ "richmond", "kessler" ]},
        { "dallas": [ "lakewood", "cedars" ]},
    ],
    "ct": [
        {"hartford": ["richmond", "kessler"]},
        {"new haven": ["westville"]},
    ],
    "fl": [
        {"orlando": ["parramore", "golden heights"]},
        {"miami": ["el portal", 'gladview']},
    ]
}

您可以使用几行代码来完成:

from collections import defaultdict
d = defaultdict(lambda:defaultdict(list))
for x,y,z in l:
    d[x][y].append(z)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM