1

出于某种原因,我不断收到以下代码的索引超出范围错误!我要做的就是将下一个数据项与当前数据项进行比较以检查冗余。

count =  0
for row2 in data2:
    count = count +1
    if data2[count][0]!=row2[0]:
       data3.append(row2)
4

1 回答 1

3

然后你应该循环除最后一个元素之外的所有元素,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.isliceizip来避免创建新列表:

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]

如果使用zippython3 则使用。

于 2015-04-22T19:54:40.953 回答