[英]How to output a csv file for more than one list?
以下代碼允許我打印 CSV output ,其中第一個“列”用於單詞,第二個“列”用於頻率。 但是,我有第二個列表 B 應該是 output 在同一個文件中。
A=[food:2,wine:1,dog:5]
B=[cat:3,bird:2]
cnt=Counter(A)
with open("list.csv", encoding='utf-8', mode='w') as fp:
fp.write('Word:Frequency\n')
for tag, count in cnt.items():
fp.write('{}:{}\n'.format(tag, count))
最終結果應該是
1. Word:Frequency:Word2:Frequency2
2. food:2:cat:3
3. wine:1:bird:2
4. dog:5
你可以幫幫我嗎? 謝謝
使用itertools.zip_longest()
將兩個序列配對,並在一個比另一個短時添加填充符。 您可以填充一個空元組,因此當您組合兩個元組時,這些列將被省略。
使用csv
模塊將這些組合元組轉換為文件中的行。
from collections import Counter
import csv
from itertools import zip_longest
cnt1 = Counter(A)
cnt2 = Counter(B)
with open("list.csv", encoding='utf-8', mode='w') as fp:
csv_out = csv.writer(fp, delimiter=':')
csv_out.writerow(['Word', 'Freq', 'Word2', 'Freq2'])
for v1, v2 in zip_longest(cnt1.items(), cnt2.items(), fillvalue=tuple()):
csv_out.writerow(v1 + v2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.