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)
首先将列表转换为词典
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)