Python列表字典理解

siv*_*iva 1 python dictionary list-comprehension list

我有一些'列表'包含很少的词典 - 比如3个词典.3个字典如下:

lstone = [{'dc_test': 1}, {'ac_test':2}, {'con_test':3}]
lsttwo = [{'dc_test': 4}, {'ac_test':5}, {'con_test':6}]
Run Code Online (Sandbox Code Playgroud)

如何创建新列表如下:

newlistone = ['dc_test',1,4]
newlisttwo = ['ac_test',2,5]
newlistthree = ['con_test',3,6]
Run Code Online (Sandbox Code Playgroud)

我的目标是编写一个新的csv文件,以便它显示如下:

dc_test,1,4
ac_test,2,5
con_test,3,5
Run Code Online (Sandbox Code Playgroud)

Sve*_*ach 7

首先将列表转换为词典

d = [dict(itertools.chain(*(d.iteritems() for d in a)))
     for a in [lstone, lsttwo]]
Run Code Online (Sandbox Code Playgroud)

接下来构建转置列表:

keys = d[0].keys()
transposed = [[e[k] for k in keys] for e in d]
Run Code Online (Sandbox Code Playgroud)

最后,转置并使用csv.writer将其写入文件:

with open("a.csv", "wb") as f:
    csv.writer(f).writerows(zip(keys, *transposed))
Run Code Online (Sandbox Code Playgroud)