来自 Python 循环的索引错误
Index Error from Python Loop
出于某种原因,我不断收到以下代码的索引超出范围错误!我只想将下一个数据项与当前数据项进行比较以检查冗余。
count = 0
for row2 in data2:
count = count +1
if data2[count][0]!=row2[0]:
data3.append(row2)
那么你应该循环 data2
中除最后一个元素之外的所有元素,如下所示:
for row2 in data2[:-1]:
您的代码更紧凑的版本是:
for i,j in zip(data2[:-1], data2[1:]):
if i!=j:
data3.append(i)
更紧凑:
data3 = [i for i,j in zip(data2[:-1], data2[1:]) if i!=j]
或使用 itertools.islice and izip 来避免创建新列表:
from itertools import islice, izip
print [i for i, j in izip(islice(data2, None, len(data2) - 2), islice(data2, 1, None)) if i != j]
如果使用 python3,则使用 zip
。
出于某种原因,我不断收到以下代码的索引超出范围错误!我只想将下一个数据项与当前数据项进行比较以检查冗余。
count = 0
for row2 in data2:
count = count +1
if data2[count][0]!=row2[0]:
data3.append(row2)
那么你应该循环 data2
中除最后一个元素之外的所有元素,如下所示:
for row2 in data2[:-1]:
您的代码更紧凑的版本是:
for i,j in zip(data2[:-1], data2[1:]):
if i!=j:
data3.append(i)
更紧凑:
data3 = [i for i,j in zip(data2[:-1], data2[1:]) if i!=j]
或使用 itertools.islice and izip 来避免创建新列表:
from itertools import islice, izip
print [i for i, j in izip(islice(data2, None, len(data2) - 2), islice(data2, 1, None)) if i != j]
如果使用 python3,则使用 zip
。