我想用字典计算单词中所有字母的出现。到目前为止,我已经尝试在for循环中添加dict。
我想知道是否可以使用字典理解?
word = "aabcd"
occurrence = {}
for l in word.lower():
if l in occurrence:
occurrence[l] += 1
else:
occurrence[l] = 1
答案 0 :(得分:12)
当然可以。
occurences = {k: word.count(k) for k in word}
print(occurences)
{'a': 2, 'b': 1, 'c': 1, 'd': 1}
或者使用Counter
。
from collections import Counter
c = Counter(word)
print(c)
Counter({'a': 2, 'b': 1, 'c': 1, 'd': 1})
答案 1 :(得分:2)
使用defaultdict的另一种解决方案。
from collections import defaultdict
occurrence = defaultdict(int)
for c in word.lower():
occurrence[c] += 1
print(occurrence)
defaultdict(<class 'int'>, {'a': 2, 'b': 1, 'c': 1, 'd': 1})
或者另一个不使用任何导入的
occurrence = {}
for c in word.lower():
occurrence[c] = occurrence.get(c,0) + 1
print(occurrence)
{'a': 2, 'b': 1, 'c': 1, 'd': 1}