【发布时间】:2016-07-24 05:52:00
【问题描述】:
我正在尝试从列表中删除重复项。我正在尝试使用以下代码来做到这一点。
>>> X
['a', 'b', 'c', 'd', 'e', 'f', 'a', 'b']
>>> for i in range(X_length) :
... j=i+1
... if X[i] == X[j] :
... X.pop([j])
但我得到了
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
IndexError: list index out of range
请帮忙。
【问题讨论】:
-
您的某些代码是否丢失?
j是什么?无论如何,我认为问题在于您正在缩短最后一个。当i达到最大值时,列表不再那么长,因此您有索引错误。 -
什么是 X_length 和 j?
-
X_length是什么?j是什么?X.pop([j])应该是什么? -
在迭代对象时不要修改它。
range(X_length)在pop之后太久。 -
此问题与TigerhawkT3 标记的问题不重复。它们都涉及 IndexExceptions,但是此代码中存在不同的问题,这些问题尚未在任何答案中解决,并且无法通过其他线程解决。这是在浪费机会教初学者 Python 的工作原理。
标签: python