我试图计算原始输入“短语”中有多少个 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/