1 回答

TA貢獻1906條經驗 獲得超10個贊
假設您有一個包含 ID 和句子的 csv 表sentences.csv,以及一個包含單詞列表的文本文件words.txt,您可以執行以下操作:
import csv
words = set(l.strip() for l in open('words.txt'))
table = []
with open('sentences.csv') as f:
for sid,sentence in csv.reader(f):
table += [[word, sid] for word in sentence.split() if word in words]
csv.writer(sys.stdout).writerows(table)
這是表達這一點的緊湊方式,并且在錯誤檢查方式中沒有做太多事情。例如,如果 csv 文件中的某些行中沒有 2 個單元格,則循環將崩潰。更簡單地說,可以將表解析表示為:
table = [[word,sid] for sid,sentence in csv.reader(open('sentences.csv'))
for word in sentence.split() if word in words]
兩者都給出了預期的輸出
hello,1
hear,1
roses,2
red,2
water,3
pie,4
love,5
chicken,5
pie,5
添加回答
舉報