【问题标题】:Create a dictionary of letters and their associated count创建一个字母字典及其相关计数
【发布时间】:2019-03-13 14:11:22
【问题描述】:

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

peter piper 摘了一小撮泡椒; 一小撮彼得采摘的泡椒; 如果彼得派珀摘了一小撮泡椒, 彼得在哪里采摘的一口泡椒?

【问题讨论】:

  • collections.Counter(my_string)
  • 我认为这不应该被标记为python-requests

标签: python python-3.x


【解决方案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})

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}

EDIT(计算来自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}

【讨论】:

  • 只是添加,如果你确实 import string ; letter_set = string.ascii_lowercase;您可以将 set(t_str) 替换为 letter_set 以仅获取字母并忽略符号。
  • @dijksterhuis 确实,添加了。谢谢! :)
  • 非常感谢你们!!我不擅长编程,所以再次感谢!
  • @D.Chesney,不客气,如果有帮助,您可以考虑接受答案:meta.stackexchange.com/questions/5234/…欢呼
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-23
  • 1970-01-01
相关资源
最近更新 更多