创建一个以列表作为输入的函数,并返回该列表中字符串“bebo”的计数

时间:2014-02-17 18:49:29

标签: python

我想要一个名为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,任何人都可以修改此代码以便运行良好吗?!

5 个答案:

答案 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))