def activityNotifications(expenditure, d):
notif = 0
if(d%2):
x = math.floor(d/2)
y = math.ceil(d/2)
for i in range(d,len(expenditure)):
if(sum(expenditure[i-x],expenditure[i-y])/2 <= expenditure[i]):
notif+=1
else:
for i in range(d,len(expenditure)-1):
if(expenditure[i - d/2] <= expenditure[i]):
notif+=1
return notif
activityNotifications中的文件"Solution.py",第16行如果(sum(支出[i-x],支出[i-y](/2<=支出[i](:TypeError:"int"对象不是可迭代的
您应该更改此行if(sum(expenditure[i-x],expenditure[i-y])/2 <= expenditure[i]):
应该是:
if(expenditure[i-x]+expenditure[i-y])/2 <= expenditure[i]:
sum函数的语法:
sum(可迭代,开始(
- iterable:iterable可以是任何列表、元组或字典,但最重要的是,它应该由数字组成
- start:此start添加到迭代中的数字
sum(expenditure[i-x],expenditure[i-y])
不会做你认为它会做的事情。
第一个参数必须是可迭代的,第二个(可选(参数是起始值(默认为0(。将2个整数传递给sum
毫无意义。
如果真的想使用sum
,你必须写:
sum(expenditure[i-a] for a in [x,y])
为什么让事情变得复杂(表现不佳(?do:
if expenditure[i-x] + expenditure[i-y] <= expenditure[i]: