試圖打印出現的單詞和數量。這樣的:如何使用列表生成器來處理單詞及其出現次數?
a aba aaa
dd ddd dd
我出shold包含:
[[a,1],[dd,2],[aba ,1],[ddd,1],[aaa,1]]
卻是:
[[a,1],[dd,2],[aba ,1],[dd,2],[ddd,1],[aaa,1]]
這裏是全碼:
在1.txt的
import re
def get_words_from_string(s):
return (re.findall(re.compile('\w+'), s.lower()))
def merge(seq):
merged = []
for s in seq:
for x in s:
merged.append(x)
return merged
fp1 = open('1.txt' , 'r');
set1 = set(line.strip() for line in fp1);
l1 =[]
for x in set1:
x.split()
x = get_words_from_string(x)
l1.append(x)
l1= merge(l1);
out = []
out = [[word , l1.count(word)] for word in l1 if (1 > out.count(word))]
問題是它拋出異常,如果該單詞不在第一次出現 有沒有一種安全的方法來查找列表是否包含一個項目?
請試着弄清楚爲什麼你認爲它不起作用,然後修改你的問題,包括你的發現。 – 2011-12-17 02:58:40
當你運行這段代碼時會發生什麼,會發生什麼? – Blender 2011-12-17 03:00:34