我想要一个名为bebo_count的函数,它将列表x作为输入,并返回该列表中字符串“bebo”的计数。 例如,bebo_count([“bebo”,“buzz”,“bebo”])应返回2 我已经制作了这样的代码
def bebo_count(x):
for a in x:
count = 0
if a == "bebo":
count += 1
return count
但它不起作用它总是向我返回1,任何人都可以修改此代码以便运行良好吗?!
答案 0 :(得分:2)
你继续在你的循环中重置count = 0,把它移到外面:
def bebo_count(x):
count = 0
for a in x:
if a == "bebo":
count += 1
return count
答案 1 :(得分:2)
内置方法count
x = [ "bebo", "bv", "bebo" ]
x.count("bebo")
> 2
x.count("b")
> 0
答案 2 :(得分:1)
您正在<{1}}循环中设置count = 0
。这意味着在每次循环迭代时,无论之前for
的值是什么,它都会被设置回零。您应该在循环外初始化count
。另请注意,我已经更正了缩进。
count
供您参考,以下是您编写此功能的另一种方法:
def bebo_count(x):
count = 0
for a in x:
if a == "bebo":
count += 1
return count
答案 3 :(得分:0)
你的问题是:count = 0在你的for循环中。
答案 4 :(得分:0)
修复您的代码:
def bebo_count(x):
count = 0 # initialize the count before you start counting
for a in x:
if a == "bebo":
count += 1
return count
然而,更加pythonic的方式可能是使用列表理解:
big_list = ["bebo", "something else", "bebo"]
def bebo_count(big_list) :
return len( [x for x in big_list if x=="bebo" ] )
print( bebo_count(big_list))