如何将字典列表转换为字典?

时间:2020-08-18 20:18:19

标签: python python-3.x list dictionary

我有一份字典列表,我正努力将其更改为字典列表:

x = [
    { # begin first and only dict in list
        '11': [{'bb': '224', 'cc': '14'}, {'bb': '254', 'cc': '16'}]
        , '22': [{'bb': '824', 'cc': '19'}]
    }
]

当前长度为1。即:

print(len(x)) # 1

我打算将其更改为词典列表。即:

desired = [
    { # begin first dict in list
        '11': [{'bb': '224', 'cc': '14'}, {'bb': '254', 'cc': '16'}]
    }
    , { # begin second dict in list
        '22': [{'bb': '824', 'cc': '19'}]
    }
]
    
print(len(desired)) # 2

我尝试过的事情:

dd = {}
for elem in x:
    for k,v in elem.items():
        dd[k] = v
print([dd])

print(len(dd)) # 2

有没有更好的方法,或者也许是更有效率的方法?

2 个答案:

答案 0 :(得分:2)

就像其他人提到的那样,您尝试过的东西没有任何“错误”。但是,您可能对尝试列表理解感兴趣:

x_desired = [{k: v} for i in x for k, v in i.items()]

就像您尝试的方法一样,这实际上是2 for循环,第二个嵌套在第一个循环中。通常,列表理解被认为是快速且Pythonic的。

答案 1 :(得分:0)

当您有两个键(211)时,您是否希望结果为22? 然后试试这个:

print(len(x[0]))