【问题标题】:How do I count the occurrences of multiple and different letters within a string? [duplicate]如何计算字符串中多个不同字母的出现次数? [复制]
【发布时间】:2021-12-30 02:07:47
【问题描述】:

例子:

如果我想编写代码来确定某个特定字符在字符串中出现的次数,我该如何处理多个字符? 例如,如果我有这些词,让我们说“简单示例”,我想知道这些词中字母 E 存在多少次,我可能会使用类似:

example = "简单示例".count("e")

但是如果我想找到比 e 更多的字母怎么办?假设我想找出单词“awesome”中出现的字母?

提前致谢!

【问题讨论】:

  • 基于awesome的输入你想要什么输出?
  • 您可以使用collections.Counter,它是dict 的子类,这意味着您可以使用键轻松访问计数(如果是字符串,则为字符)。

标签: python python-3.x string count counter


【解决方案1】:

既然你想使用counter,最好的方法可能是:


import collections

a = "example"
counter = collections.Counter(a)

print(dict(counter))
# {'e': 2, 'x': 1, 'a': 1, 'm': 1, 'p': 1, 'l': 1}

参考:https://docs.python.org/3/library/collections.html#collections.Counter

【讨论】:

  • 是的,我只是想如果我正在写答案,我应该发布一些内容。
【解决方案2】:

尝试列表理解:

letters = ['e', 'm']
["Simple Example".count(letter) for letter in letters]

【讨论】:

  • 有一个slight issue regarding count 虽然我不确定它如何影响字符串,但我猜效果是相似的
  • @Matiiss 需要相当多的字符才能计数,然后才会比 Counter 慢。
【解决方案3】:

这应该满足要求。

a = {}
s = "awesome"
{a.update({i:s.count(i)}) for i in s if i not in a}
print(a)

【讨论】:

    猜你喜欢
    • 2013-11-04
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2016-06-21
    • 1970-01-01
    相关资源
    最近更新 更多