为什么尝试从列表中删除重复项时出现此错误?
“ TypeError:'int'对象不可下标”
尝试从列表中删除重复的值
numbers=[5,2,1,7,2,4]
numbers.sort()
i=0
for item in numbers:
if i==len(numbers)-1:
break
elif item[i]==item[i+1]:
numbers.remove(item)
i+=1
答案 0 :(得分:1)
实际上,问题出在您的for loop
上,而不是因为删除重复的数字。我建议您必须定义一个空列表,在其中使用循环逐个附加元素,并检查该元素是否已存在于列表中,然后不要附加。这是代码:
numbers=[5,2,1,7,2,4]
numbers.sort()
sorted_num=[]
i=0
for i in range(0,len(numbers)-1):
if numbers[i] in sorted_num:
continue
else:
sorted_num.append(numbers[i])
i+=1
print (sorted_num)
# elif item[i]==item[i+1]:
# numbers.remove(item)
# i+=1
我只编辑了一段代码
答案 1 :(得分:0)
使用set
查看更多here
numbers=[5,2,1,7,2,4]
list(set(numbers))
[1, 2, 4, 5, 7]
答案 2 :(得分:0)
使用字典:
numbers=[5,2,1,7,2,4,5,5,1]
numbers=list(dict.fromkeys(numbers))
print(numbers)