我想将字典列表转换为列表列表。
由此而来。
d = [{'B': 0.65, 'E': 0.55, 'C': 0.31},
{'A': 0.87, 'D': 0.67, 'E': 0.41},
{'B': 0.88, 'D': 0.72, 'E': 0.69},
{'B': 0.84, 'E': 0.78, 'A': 0.64},
{'A': 0.71, 'B': 0.62, 'D': 0.32}]
到
[['B', 0.65, 'E', 0.55, 'C', 0.31],
['A', 0.87, 'D', 0.67, 'E', 0.41],
['B', 0.88, 'D', 0.72, 'E', 0.69],
['B', 0.84, 'E', 0.78, 'A', 0.64],
['A', 0.71, 'B', 0.62, 'D', 0.32]]
我可以从中获得这个输出
l=[]
for i in range(len(d)):
temp=[]
[temp.extend([k,v]) for k,v in d[i].items()]
l.append(temp)
我的问题是:
- 有没有更好的方法来做到这一点?
- 我可以用列表理解来做到这一点吗?
最佳答案
因为您使用的是 python 3.6.7 和 python dictionaries are insertion ordered in python 3.6+ ,您可以使用 itertools.chain
实现所需的结果:
from itertools import chain
print([list(chain.from_iterable(x.items())) for x in d])
#[['B', 0.65, 'E', 0.55, 'C', 0.31],
# ['A', 0.87, 'D', 0.67, 'E', 0.41],
# ['B', 0.88, 'D', 0.72, 'E', 0.69],
# ['B', 0.84, 'E', 0.78, 'A', 0.64],
# ['A', 0.71, 'B', 0.62, 'D', 0.32]]
关于Python:将字典列表转换为列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55731835/