我有一份字典列表,我正努力将其更改为字典列表:
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
有没有更好的方法,或者也许是更有效率的方法?
答案 0 :(得分:2)
就像其他人提到的那样,您尝试过的东西没有任何“错误”。但是,您可能对尝试列表理解感兴趣:
x_desired = [{k: v} for i in x for k, v in i.items()]
就像您尝试的方法一样,这实际上是2 for循环,第二个嵌套在第一个循环中。通常,列表理解被认为是快速且Pythonic的。
答案 1 :(得分:0)
当您有两个键(2
和11
)时,您是否希望结果为22
?
然后试试这个:
print(len(x[0]))