【问题标题】:Creating a nested dictionary from a nested list从嵌套列表创建嵌套字典
【发布时间】:2013-05-22 17:16:45
【问题描述】:

来自嵌套列表:

lst = [['h2o', '2938', 'v1'], ['co2', '2492', 'v1'], ['co2', '2492', 'v2'], ['o3', '780', 'v2'], ['o3', '1140', 'v2']]

我想创建一个嵌套字典:

t1 = {h2o:{2938:['v1']}, co2:{2492:['v1','v2']}, o3:{780:['v2'], 1140:['v2']}}

是否可以使用字典理解来做到这一点?是否有更好的数据结构类型来保存这些关系?

提前致谢!

【问题讨论】:

    标签: python list dictionary nested


    【解决方案1】:
    from collections import defaultdict
    lst = [['h2o', '2938', 'v1'], ['co2', '2492', 'v1'], ['co2', '2492', 'v2'], ['o3', '780', 'v2'], ['o3', '1140', 'v2']]
    dd = defaultdict(lambda: defaultdict(list))
    for a, b, c in lst:
        dd[a][b].append(c)    
    
    >>> dd
    defaultdict(<function <lambda> at 0xb6fb087c>, {'h2o': defaultdict(<type 'list'>, {'2938': ['v1']}), 'co2': defaultdict(<type 'list'>, {'2492': ['v1', 'v2']}), 'o3': defaultdict(<type 'list'>, {'1140': ['v2'], '780': ['v2']})})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-04
      • 2021-11-20
      • 2021-04-19
      • 2018-01-16
      • 1970-01-01
      • 2020-10-22
      • 2021-09-15
      相关资源
      最近更新 更多