如何从字符串创建字母及其相关计数?通过从字符串创建字典?在Jupyter Hub中
彼得·派珀(Piper piper)摘了几只腌制的胡椒; 一撮腌制的胡椒彼得 如果彼得吹笛者采摘了几只腌制的辣椒, 彼得腌制的胡椒粉在哪里啄?答案 0 :(得分:1)
使用Counter
:
from collections import Counter
t_str = "peter piper picked a peck of pickled peppers; a peck of pickled peppers peter picked; if peter piper picked a peck of pickled peppers, where's the peck of pickled peppers peter picked?"
print(Counter(t_str))
输出:
Counter({'e': 33, 'p': 32, ' ': 31, 'c': 12, 'k': 12, 'r': 11, 'i': 11, 'd': 8, 't': 5, 'f': 5, 's': 5, 'o': 4, 'l': 4, 'a': 3, ';': 2, 'h': 2, ',': 1, 'w': 1, "'": 1, '?': 1})
OR
print(dict((letter,t_str.count(letter)) for letter in set(t_str)))
输出:
{'?': 1, ',': 1, 'r': 11, 'p': 32, ' ': 31, 'k': 12, 'a': 3, 'l': 4, 'd': 8, 'h': 2, "'": 1, 'i': 11, 'w': 1, 'c': 12, ';': 2, 't': 5, 'o': 4, 's': 5, 'f': 5, 'e': 33}
编辑(以计算a-z
中字母的出现,而不管字符串中是否存在字母,即在这种情况下等于0
):>
import string
letter_set = string.ascii_lowercase
print(dict((letter,t_str.count(letter)) for letter in letter_set))
输出:
{'a': 3, 'b': 0, 'c': 12, 'd': 8, 'e': 33, 'f': 5, 'g': 0, 'h': 2, 'i': 11, 'j': 0, 'k': 12, 'l': 4, 'm': 0, 'n': 0, 'o': 4, 'p': 32, 'q': 0, 'r': 11, 's': 5, 't': 5, 'u': 0, 'v': 0, 'w': 1, 'x': 0, 'y': 0, 'z': 0}