Python:计算列表中的项目组

时间:2014-03-12 00:58:11

标签: python list function count

我正在通过Codecademy学习Python,我正在努力弄清楚为什么我在运行此查询时得到1的返回值。注意:我知道我可以做一个sequence.count(item)但是我试图在没有count函数的情况下这样做。任何帮助将不胜感激。

def count(sequence, item):
    rep = int(0)
    for item in sequence:
        if item in sequence:
            rep += 1
        else:
            rep = 0
    return rep

print count([1], 7)

2 个答案:

答案 0 :(得分:1)

我认为你通过使用“item”来引用两个不同的东西让你感到困惑。我将循环变量更改为i

def count(sequence, item):
    rep = 0
    for i in sequence:
        if i == item:
            rep += 1
    return rep

print count([1], 7)

此外,您可能不希望将代表设置为0

答案 1 :(得分:1)

更正功能:

def count(sequence, item):
    rep = 0
    for i in sequence:
        if i == item:
            rep += 1
    return rep

关于这些行:

for item in sequence:
    if item in sequence:

当您在函数中输入[1]时,它会:

  • for item in sequence(首个且唯一的项目为1

  • if item is in sequence(如果1在序列中......就是这样)

  • 然后rep += 1,因此返回1

for item in sequence表示对item中的每个sequence执行某些操作。 在您的情况下,您只是确认该项目确实在序列中。 事实上,您甚至从未使用或考虑过您输入的7