{{1}}
尝试检查列表是否包含重复项,因此我尝试将当前值与包含它的列表进行比较,减去该值。即使一个项目只在列表中一次,它仍然会被捕获,这使我成为了一个东西。删除它并没有做我认为它正在做的事情。
答案 0 :(得分:1)
为什么不用.count()
来检查重复项?
wheels = [wheel_1,wheel_2,wheel_3,wheel_4,wheel_5]
for wheel in wheels:
if wheels.count(wheel) > 1:
print("duplicate")
答案 1 :(得分:1)
当你循环迭代车轮(列表元素)在车轮.. 假设它在第一次迭代中需要wheel_1。 然后你要检查wheel_1是否在车轮上。 轮子在哪里[wheels_1,wheels_2,.....] 因此,当轮子存在时,它会被移除。 因此列表变为[wheel_2,wheel_2,.....] 每个元素都会发生这种情况,因此您最终得到一个空列表 list.remove(list_item)正在这里工作。
你的逻辑错误。
您要做的是设置一个计数器,如果列表中存在多个list元素,则删除该元素。
你也应该在python中引用“set”。 这是一个没有重复的列表。
答案 2 :(得分:1)
如果您只想检查是否存在重复,则可以使用set
。 set包含唯一元素。所以,逻辑很简单,如果列表的长度等于集合的长度,那么你没有重复。
if len(wheels)==len(set(wheels)):
print "No duplicate"
else:
print "Duplicate exists"
但是,如果您对这些重复元素是什么感兴趣,可以考虑itertools.Counter
,它返回一个字典,其中包含一个iterable元素作为键的关键字和频率作为值。
from collections import Counter
c = Counter(a)
for key,value in c.iteritems():
if value>1:
print key," exists ",value, " times "