Python - "' int'对象不是可订阅的"在列表对象上

时间:2017-05-16 14:05:30

标签: python functional-programming

我尝试使用函数式编程创建一个函数,它接收一个数字和一个数字列表作为参数,并返回该数字出现在列表中的次数。我不能为我的生活弄清楚为什么我会得到这个错误。我浏览了类似的问题,但我无法理解错误。

以下是代码:

def count(num, list):
    if list == []:
        return 0
    elif list[0] == num:    # I am getting the error on this line
        return 1 + count(list[1:], num)
    else:
        return 0 + count(list[1:], num)

print (count(4, []))
print (count(3, [1, 2, 3, 4, 5]))
print (count(1, [1, 1, 1]))

1 个答案:

答案 0 :(得分:2)

num应该是第一个参数

def count(num, list):
    if list == []:
        return 0
    elif list[0] == num:
        return 1 + count(num, list[1:]) # <- here 
    else:
        return 0 + count(num, list[1:]) # <- and here