簡體   English   中英

如何在 output 一個 csv 文件中獲取多個列表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM