3 回答

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊
不使用更新的@Primusa 答案的變體:
from collections import Counter
words = ["tree", "bone", "indigo", "developer"]
counts = Counter(c for word in words for c in set(word.lower()) if c.isalpha())
輸出
Counter({'e': 3, 'o': 3, 'r': 2, 'd': 2, 'n': 2, 'p': 1, 'i': 1, 'b': 1, 'v': 1, 'g': 1, 'l': 1, 't': 1})
基本上將每個(gè)單詞轉(zhuǎn)換為一個(gè)集合,然后迭代每個(gè)集合。

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
創(chuàng)建一個(gè)計(jì)數(shù)器對(duì)象,然后用每個(gè)單詞的集合更新它:
from collections import Counter
wordlist = ["tree","bone","indigo","developer"]
c = Counter()
for word in wordlist:
c.update(set(word.lower()))
print(c)
輸出:
Counter({'e': 3, 'o': 3, 'r': 2, 'n': 2, 'd': 2, 't': 1, 'b': 1, 'i': 1, 'g': 1, 'v': 1, 'p': 1, 'l': 1})
請(qǐng)注意,雖然 中不存在的字母wordlist不存在于 中Counter,但這很好,因?yàn)?a 的Counter行為類似于 a defaultdict(int),因此訪問(wèn)不存在的值會(huì)自動(dòng)返回默認(rèn)值 0。

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊
一個(gè)沒有柜臺(tái)
words=["tree","bone","indigo","developer"]
d={}
for word in words: # iterate over words
for i in set(word): # to remove the duplication of characters within word
d[i]=d.get(i,0)+1
輸出
{'b': 1,
'd': 2,
'e': 3,
'g': 1,
'i': 1,
'l': 1,
'n': 2,
'o': 3,
'p': 1,
'r': 2,
't': 1,
'v': 1}
添加回答
舉報(bào)