在 Python 中更改 dictionaries/keys
Altering dictionaries/keys in Python
我有 运行 下面 Python 中的代码,用于从文本文件生成单词列表及其计数。我将如何从我的 "frequency_list" 变量中过滤掉计数仅为 1 的单词?
此外,如何将底部的打印语句循环导出为 CSV
在此先感谢您提供的任何帮助。
import re
import string
frequency = {}
document_text = open('Words.txt', 'r')
text_string = document_text.read().lower()
match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string)
for word in match_pattern:
count = frequency.get(word,0)
frequency[word] = count + 1
frequency_list = frequency.keys()
for words in frequency_list:
print (words, frequency[words])
对于第一部分 - 你可以使用字典理解:
frequency = {k:v for k,v in frequency.items() if v>1}
要过滤掉单词,另一种方法是:
frequency = dict(filter(lambda (k,v): v>1, frequency.items()))
要将底部的打印语句循环导出为 CSV,您可以这样做:
import csv
frequency_list = ['word1','word2','word3'] # example
with open('output.csv','w') as csvfile:
writer = csv.writer(csvfile, delimiter=",")
writer.writerow(frequency_list)
这将生成一个 'output.csv' 文件,其中 一行 中包含您 frequency_list 中的单词。
要每个单词占一行,请尝试以下操作:
with open('output.csv','w') as csvfile:
writer = csv.writer(csvfile, delimiter=",")
writer.writerows([i.strip() for i in l.split(',')] for l in frequency_list)
Update
要获取包含计数器的 csv,请保留您的初始字典并执行以下操作:
frequency = {"one":1,"two":2,"three":3} #example
with open('output.csv', 'w') as csvfile:
writer = csv.writer(csvfile)
for key, value in frequency.items():
writer.writerow([key, value])
我有 运行 下面 Python 中的代码,用于从文本文件生成单词列表及其计数。我将如何从我的 "frequency_list" 变量中过滤掉计数仅为 1 的单词?
此外,如何将底部的打印语句循环导出为 CSV
在此先感谢您提供的任何帮助。
import re
import string
frequency = {}
document_text = open('Words.txt', 'r')
text_string = document_text.read().lower()
match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string)
for word in match_pattern:
count = frequency.get(word,0)
frequency[word] = count + 1
frequency_list = frequency.keys()
for words in frequency_list:
print (words, frequency[words])
对于第一部分 - 你可以使用字典理解:
frequency = {k:v for k,v in frequency.items() if v>1}
要过滤掉单词,另一种方法是:
frequency = dict(filter(lambda (k,v): v>1, frequency.items()))
要将底部的打印语句循环导出为 CSV,您可以这样做:
import csv
frequency_list = ['word1','word2','word3'] # example
with open('output.csv','w') as csvfile:
writer = csv.writer(csvfile, delimiter=",")
writer.writerow(frequency_list)
这将生成一个 'output.csv' 文件,其中 一行 中包含您 frequency_list 中的单词。
要每个单词占一行,请尝试以下操作:
with open('output.csv','w') as csvfile:
writer = csv.writer(csvfile, delimiter=",")
writer.writerows([i.strip() for i in l.split(',')] for l in frequency_list)
Update
要获取包含计数器的 csv,请保留您的初始字典并执行以下操作:
frequency = {"one":1,"two":2,"three":3} #example
with open('output.csv', 'w') as csvfile:
writer = csv.writer(csvfile)
for key, value in frequency.items():
writer.writerow([key, value])