创建字母及其相关计数的字典

时间:2019-03-13 14:11:22

标签: python python-3.x

如何从字符串创建字母及其相关计数?通过从字符串创建字典?在Jupyter Hub中

彼得·派珀(Piper piper)摘了几只腌制的胡椒; 一撮腌制的胡椒彼得 如果彼得吹笛者采摘了几只腌制的辣椒, 彼得腌制的胡椒粉在哪里啄?

1 个答案:

答案 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}