2016-09-25 9 views
1

私は以下のコードをPythonで実行して、単語のリストとその数をテキストファイルから生成しています。どのように私は1のカウントを持っている私の "frequency_list"変数から単語をフィルタリングに行きますか?またPythonで辞書/キーを変更する

、どのように私は、CSVに提供される任意の助けを事前に

感謝を底にprint文のループをエクスポートします。最初の部分については

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]) 
+0

[1つのこれらの '' 'dict'''メソッドのうち、(https://docs.python.org/3/library/stdtypes.html#mapping-types-dict);あなたの状態の値をテストしてください。要件を満たすキーをコンテナ(リストなど)に格納する。 [csv module](https://docs.python.org/3/library/csv.html)を使用してCSVに書き込む – wwii

答えて

1

を、別の方法は、次のようになります。

frequency = dict(filter(lambda (k,v): v>1, frequency.items())) 

print文をエクスポートするには一番下の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) 

frequency_listからの単語がの1行の 'output.csv'ファイルが生成されます。 、カウンターでcsvファイルを取得し、あなたの最初の辞書を維持し、次の操作を実行するには

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) 

更新

:各単語しようと、次のために行を取得するには

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]) 
+0

ありがとう!最後のエクスポートの例を使用して、私は上記のカウント値をCSVにどのように持ち込むのですか?そのため、各行(単語)には、その隣の列にそれぞれのカウントがあります。 – bkubs557

1

- あなたはdictの内包表記を使用することができます言葉をフィルタリングするに

frequency = {k:v for k,v in frequency.items() if v>1}

+0

v> 1を意味すると思うが、ありがとう! – bkubs557

関連する問題