Python:将字典列表转换为列表列表

标签 python python-3.x list dictionary

我想将字典列表转换为列表列表。

由此而来。

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/

相关文章:

带有 Django : ImportError: No module named 'openid.association' 的 python-social-auth

list - 随机选择对象并更改所选对象的颜色

c++ - 更改列表项

python - 如何对相互链接的元组列表进行排序?

python - 在 sys.modules 中动态创建模块导致 sys 变为 None

python-3.x - 跳过 Pandas 的每一行

python - 使用 python 列表中的信息删除 MYSQL 中的多行

python - 无法访问Processing.py中不同选项卡中的类

python - 为什么是 (numpy.nan, 1) == (numpy.nan, 1)?

c++ - Google 和 Facebook 使用哪些前端和后端技术?