python 报错'list' object is not callable

我用python写了一段代码对时间序列数据进行切割,主体思路就是对两个点相连成一条直线,计算线段各点用直线内插法计算的函数值和函数的实际值之间的误差,最大误差如果大于设定的阈值那么此点就是一个分割点,如果不是继续往后推移。
代码如下:
close = pd.read_csv("close.csv")
close = list(close)
next_break=[0]
def find_nextbreak(c):

for i in range(1,len(c)):
    k=(close[i]-close[next_break[-1]])/(i-next_break[-1])
    max_error=0
    for j  in range(next_break[-1]+1,i+1):
        close_predict = close[next_break[-1]]+k*(j-next_break[-1])
        close_predict_error = abs(close_predict-close[i])/close[i]
        if close_predict_error>max_error:
            max_error = close_predict_error
    if max_error>=0.05:
        next_break.append(i)
return next_break

all_point =find_nextbreak(close)
if all_point[-1]!=(len(close)-1):

all_point.append(len(close)-1)

print all_point

刚开始运行不会出错,但是如果多运行几次居然报错了
TypeError Traceback (most recent call last)
<ipython-input-17-c5e9f7a6f1b0> in <module>()

  1 import pandas as pd
  2 piecewise = pd.read_csv("piecewise.csv")

----> 3 close = list(piecewise['close'])

  4 next_break=[0]
  5 def find_nextbreak(c):

TypeError: 'list' object is not callable

我是在jupyter里面跑的程序,请问这是什么情况??

阅读 10.9k
2 个回答

你是不是做了重绑定(rebind)

list = list()
list('something')  # TypeError: 'list' object is not callable

python3

>>> list=['aa']
>>> list('eee')
Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    list('eee')
TypeError: 'list' object is not callable
>>> del list
>>> list('eee')
['e', 'e', 'e']
>>> 

>>> list=['aa']
>>> list('eee')
Traceback (most recent call last):
  File "<pyshell#30>", line 1, in <module>
    list('eee')
TypeError: 'list' object is not callable
>>> __builtins__.list('eee')
['e', 'e', 'e']
>>> 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题