我正在尝试删除列表中的重复元素。当i
的值转到9
时,下面的代码表示索引超出范围。 9 + 1 = 10
不在列表之外,我可以打印它,但每当我使用del
时,它都会给我错误。这是不起作用的代码:
a = [12,12,34,34,56,11,32,32,11,10,10]
g = len(a)
for i in range(0,g-1):
if a[i] == a[i+1]:
del a[i]
print a
然而,反向逻辑,即我从10 - 1的值有效,但我从0 - 9不起作用。这个是反向逻辑。
a = [12,12,34,34,56,11,32,32,11,10,10]
g = len(a)
for i in range(g-1,0,-1):
if a[i] == a[i-1]:
del a[i]
print a
有人可以解释原因吗?
答案 0 :(得分:3)
您正在删除列表中的元素,因此它会变短。 您应该创建一个新列表:
last = None
b = []
for value in a:
if value != last:
b.append(value)
last = value