python - 尝试仅使用 while 循环来计算字母出现的次数

标签 python python-2.7

我试图计算原始输入“短语”中有多少个 o,它计算第一个 o 并表示它已完成,但之后有很多 o。我如何让它在没有 for 循环的情况下计算所有的 o。

while loop_count<len(phrase):
    if "o" in phrase:
        loop_count += 1
        count2 += 1
      if loop_count>len(phrase):
          print loop_count
          break
      else:
          continue
  else:
    print loop_count
    continue

最佳答案

您可以使用sum使用迭代器(在本例中为 generator expression ):

>>> sum(c=='o' for c in 'oompa loompa')
4

您可以使用带有 len 的正则表达式:

>>> re.findall('o', 'oompa loompa')
['o', 'o', 'o', 'o']
>>> len(re.findall('o', 'oompa loompa'))
4

您可以使用计数器:

>>> from collections import Counter
>>> Counter('oompa loompa')['o']
4

或者只使用字符串的“count”方法:

>>> 'oompa loompa'.count('o')
4

如果您确实想要使用 while 循环,请使用 pop 方法将列表用作堆栈:

s='oompa loompa'
tgt=list(s)
count=0
while tgt:
    if tgt.pop()=='o':
        count+=1

或者一个“for”循环——更Pythonic:

count=0        
for c in s:
    if c=='o':
        count+=1 

关于python - 尝试仅使用 while 循环来计算字母出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25921372/

相关文章:

python - Kivy Pong 官方教程中如何使用 Scatter 移动 Racket ?

python - 从多个系列创建 DataFrame

python - 如何修剪 .fits 图像并保持世界坐标以便在 astropy Python 中绘图?

python - fbprophet 年度季节性值太高

python - 在 `for` 循环中使用 `range(x)`

python - 为什么 dicts 比任何 int 都大?

python - Visual Studio 代码 pylint : Unable to import 'protorpc'

python - 在多行上进行相同的更改(尝试除外) - python

python - tkinter treeview - 拖放?

python - 如何在 aiohttp 或 Flask 请求中写入全局变量(或单例)