以下是给我一些问题的代码片段。我想要做的是发现每天出现356天的高点。要做到这一点,我尝试的代码类似于下面的代码,但在“for i”行上获得异常:'builtin_function_or_method'对象没有属性' getitem '
Quote = namedtuple("Quote", "Date Close Volume")
quotes = GetData() # arrray
newHighs = []
for i,q in range[365, len(quotes)]: #<--Exception
max = max(xrange[i-365, i].Close) #<--i know this won't work, will fix when i get here
if (q.Close > max):
newHighs.append(i,q)
任何有关修复此问题的帮助将不胜感激。另外,有效实现这一点的任何提示(因为引号数组目前有17K元素)也不错。
答案 0 :(得分:3)
“范围”是一个功能。这意味着您使用圆括号,而不是方括号。这与下面一行中的“xrange”相同。我理解你为什么要使用方括号,但“范围”的作用是使用这些参数创建列表。所以它与你想要列表中的元素m到n的时间不一样。
答案 1 :(得分:3)
range
是一个返回生成器(或python2中的列表)的函数。因此,它必须被调用为函数range(365, len(quotes))
,它将所有数字从365返回到len(引号)。
方括号表示索引,例如访问列表中的项目。由于range是函数而不是列表,因此当您尝试访问它时会抛出异常。