【发布时间】:2020-06-25 07:42:30
【问题描述】:
在这段代码中,我试图删除列表中的每个重复元素,只是让所有元素唯一且不重复,所以当我运行这段代码时会出现错误:
myList = [1, 2, 4, 4, 1, 4, 2, 6, 2, 9]
repeat = 0
for i in range(len(myList)-1):
for j in range(len(myList)-1):
if myList[i]== myList[j]:
repeat+=1
if repeat>1:
del myList[j]
print("The list with unique elements only:")
print(myList)
出现的错误是:
Traceback (most recent call last):
File "main.py", line 8, in <module>
if myList[i]== myList[j]:
IndexError: list index out of range
为什么会发生这种情况,我该如何解决?
【问题讨论】:
-
说,列表中有 3 个元素。你找到一个重复并删除 1。但循环是从 0 到 2 的迭代。所以当说
i变成 2 时,myList[i]不存在,这就是你得到错误的原因 -
@kuro 这是一个有用的注释,这是我的错误,非常感谢。
-
@Sushanth 很好,但除了列表和 for 循环之外,我不必使用任何内置函数,例如 Set of List。
-
这能回答你的问题吗? Removing duplicates in lists
标签: python python-3.x list for-loop