我尝试使用函数式编程创建一个函数,它接收一个数字和一个数字列表作为参数,并返回该数字出现在列表中的次数。我不能为我的生活弄清楚为什么我会得到这个错误。我浏览了类似的问题,但我无法理解错误。
以下是代码:
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]))
答案 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