如何在 python 中'int'对象不可迭代的情况下解决此错误


  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]:

最新更新