【问题标题】:Turn a list of lists of lists of lists into a dictionary将列表列表的列表转换为字典
【发布时间】:2018-08-03 17:21:40
【问题描述】:

我正在使用 Python 3.6,我需要将下面的列表变成字典:

myList = [['A',[['a',1],['b',0],['c',1]]],['B',[['a',0],['b',1],['c',1]]]]

输出:

myDict = {A: {a: 1, b: 0, c: 1}, B: {a: 0, b: 1, c: 1}}

我尝试使用:

myDict = defaultdict(lambda: defaultdict(list))
for key1, key2, *values in myList:
    myDict[key1][key2].extend(values)

但我得到一个错误:

TypeError: unhashable type: 'list'

【问题讨论】:

    标签: python python-3.x dictionary


    【解决方案1】:

    理解得到了你的支持:

    { k:{ kk:vv for kk, vv in v } for k, v in myList }
    # => {'A': {'a': 1, 'b': 0, 'c': 1}, 'B': {'a': 0, 'b': 1, 'c': 1}}
    

    【讨论】:

    • 你可以更简洁:{k: dict(v) for k, v in myList}
    猜你喜欢
    • 2015-06-02
    • 2015-10-16
    • 1970-01-01
    • 2017-04-23
    • 2021-10-13
    • 1970-01-01
    • 2014-01-20
    • 2020-05-23
    相关资源
    最近更新 更多