2013-08-20 78 views
-1

我有一個腳本找到ALIST字重複:腳本不打印字數

newm = [u'life', u'selection', u'squire', u'naturalist', u'patriarch', u'home', u'man', u'public', u'nbsp', u'born', u'naturalist', u'theory', u'selectionbecame', u'foundation', u'country', u'gentleman', u'suggesting', u'class', u'time', u'death', u'evolutionary', u'imagery', u'ofscience', u'literature'] 
print newm 

#count for list 
counts = defaultdict(int) 
print "uyti" 
for x in newm: 
    counts[x]+=1 

print counts 

這個程序甚至不打印「uyti」。什麼是錯誤?

+2

你有'從集合進口defaultdict'嗎? –

+0

你是否從集合導入defaultdict'? – roippi

+0

你是如何運行它的?你可以在交互模式下運行python嗎? – flornquake

回答

0
from collections import defaultdict 
newm = [u'life', u'selection', u'squire', u'naturalist', u'patriarch', u'home', u'man', u'public', u'nbsp', u'born', u'naturalist', u'theory', u'selectionbecame', u'foundation', u'country', u'gentleman', u'suggesting', u'class', u'time', u'death', u'evolutionary', u'imagery', u'ofscience', u'literature',u'home'] 

#count for list 

counts = defaultdict(int) 

for x in newm: 
    counts[x]+=1 

print counts 
0

假設蟒蛇2.5+

from collections import defaultdict 

newm = [u'life', u'selection', u'squire', u'naturalist', u'patriarch', u'home', u'man', u'public', u'nbsp', u'born', u'naturalist', u'theory', u'selectionbecame', u'foundation', u'country', u'gentleman', u'suggesting', u'class', u'time', u'death', u'evolutionary', u'imagery', u'ofscience', u'literature'] 
print newm 

#count for list 
counts = defaultdict(int) 
print "uyti" 
for x in newm: 
    counts[x]+=1 

print counts 

將創建defaultdict,具有計數和鍵填充它,然後做你的打印(我假設只是調試/完整性檢查的東西......)

0

如果你想知道是哪些詞是重複的,還有一個更簡單的方法:

words = set(newm) 
dups = [(w, newm.count(w)) for w in words if newm.count(w) > 1] 
print dups 

這會給ÿ或[(u'home', 2), (u'naturalist', 2)]。要找出所有單詞的計數,只需從列表理解中刪除if語句即可。