inp_list=[10,1,11,1,29,876,768,10,11,1,92,29,876]
for i in range(len(inp_list)):
for j in range(i+1, len(inp_list)):
if (inp_list[i]==inp_list[j]):
inp_list.remove(inp_list[i])
print(inp_list)
在代码中,我试图删除列表中的重复元素。它给了我第
if (inp_list[i]==inp_list[j):
行的 ValueError,我无法理解为什么它向我显示错误。
我尝试在第一个 for 循环中使用索引号来循环遍历列表的元素。在第二个for循环中,我试图循环遍历索引号为index+1的元素,但我将范围的结束值限制在列表的长度内。尽管如此,我还是收到了 ValueError,表示列表索引超出范围。
我预计输出是这样的: [10,1,11,29,876,768,92]
转换为集合将删除所有重复项。
output_list = list(set(inp_list))
如果您想保持相同的订单
from collections import OrderedDict
output_list = list(OrderedDict.fromkeys(inp_list))
查看详情这里。
问题是您要从 inp_list
中
删除元素,这意味着它会变短,但是您循环的范围仍然具有数组旧大小的索引。所以你最终会越过现在更短的数组的末尾。