在Python中尝试将其作为函数的一部分,并且可以预见,它不起作用:
outputlist = [-5,-4,-3,-2,-1,0,1,2,3,-2,-1,0,2,4,-3,-2,1,0,2]
def counter(outputlist):
outputlistcut = outputlist[:5]
count = 0
for i in np.arange(len(outputlistcut)):
if outputlistcut[i] >= 0 and outputlistcut[i-1] < 0:
count += 1
return count
count = counter(outputlist)
这返回了错误消息:
TypeError: unsupported operand type(s) for -: 'range' and 'int'
基本上,我想计算一个函数的输出f(x)的实例数(在outputlist
中记录的f(x)在从负y变为正数后通过或等于0。有点紧张我怎么能简明地执行这个。
感谢您的帮助。
答案 0 :(得分:1)
我怀疑你做了(基于你收到的错误)
i = range(N)
这是错误的
我怀疑你想要像
这样的东西count = 0
for i in range(N):
if outputlist[i-1] < 0 and outputlist[i] == 0:
count += 1
虽然有很多更好的方法可以做到这一点
count = sum([a<0 and b==0 for a,b in zip(outputList,outputList[1:])])