【问题标题】:Count each time a string appears in a longer string, Python每次字符串出现在更长的字符串中时计数,Python
【发布时间】:2013-12-29 23:58:14
【问题描述】:

我想计算一个字符串是否可以在更长的字符串中找到。

例如,如果我有字符串:“Heyheyheyhey”。 我想检查“ey”部分在字符串中出现了多少次,并得到计数 4。 假设我在列表中也有这个字符串。

我试过了,但只要该部分在字符串中出现一次,它就可以工作。

For word in list:
   count = 0
   If 'ey' in word:
       count +=1

我认为将 if 交换为一段时间会起作用,但显然不是。有什么建议吗?

这一切都在 PYTHON 3.x 中。

【问题讨论】:

  • 我建议用相关语言标记这个问题以获得更多观点。
  • 你说的是哪种语言?

标签: string for-loop python-3.x


【解决方案1】:

用字符串方法count

>>> 'Heyheyheyhey'.count('ey')
4

使用正则表达式:

>>> import re
>>> len(re.findall(r'ey', 'Heyheyheyhey'))
4

编辑

如果你想匹配多个东西,你可以使用列表推导:

>>> s='Hey hi how'
>>> sum(1 for i in range(0,len(s)) if s[i] in 'eyio')
4

或者一个正则表达式:

>>> len(re.findall(r'e|y|i|o', s))
4

【讨论】:

  • 这两种方法中的一种或两种可以同时用于计算人声的数量吗?那对我来说非常好。比如: "Heyhi".count('e','y','i') 应该返回 3 或其他东西
猜你喜欢
  • 1970-01-01
  • 2019-10-12
  • 2022-10-15
  • 2014-04-24
  • 2020-02-21
  • 2012-02-12
相关资源
最近更新 更多