0
これは、「明白な」間違いを発見するために目の第二のペアが必要なコードの厄介な部分の1つです。私はリストのリストを処理しています。何らかの理由で、「リストの索引が範囲外です」とヒットしています。ここで単純なリスト処理関数のIndexError - 何が欠けていますか?
は抜粋です:
def group_ldata(data, freq, normal_grouping = True):
if freq > 1 and len(data) > (SOME_SANITY_FACTOR*freq):
i, output, subset, lastpos = (0, [],[], len(data)-freq)
if not normal_grouping:
for i in range(lastpos):
pass
else:
while True:
subset = data[i:freq]
#print subset
firstrow = subset[0]
lastrow = subset[-1]
output.append((firstrow[0], firstrow[1], lastrow[2]))
i += freq
if i >= lastpos:
break
return output
else:
return data
は、ここにブートにいくつかのサンプルデータです:私はそれを実行したときに
>>> a =[]
>>> a.append(range(0,5))
>>> a.append(range(5,10))
>>> a.append(range(10,15))
>>> a.append(range(15,20))
>>> a.append(range(20,25))
>>> a.append(range(25,30))
>>> a.append(range(30,35))
ここ
は結果である:
>>> b = group_ldata(a,2)
[[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]
[]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 11, in group_ldata
IndexError: list index out of range
誰が何を見つけることができますエラーが発生していますか?
ビンゴ!私はそれがそんなに愚かなものになることは分かっていた。上限はi + freqでなければなりません。 –