我见过这个问题的很多变体,从简单的删除重复项到查找和列出重复项。即使尝试从这些例子中提取一些片段也无法得到我的结果。
我的问题是如何检查我的列表是否有重复的条目?更好的是,我的列表是否有非零重复项?
我有几个想法——
#empty list
myList = [None] * 9
#all the elements in this list are None
#fill part of the list with some values
myList[0] = 1
myList[3] = 2
myList[4] = 2
myList[5] = 4
myList[7] = 3
#coming from C, I attempt to use a nested for loop
j = 0
k = 0
for j in range(len(myList)):
for k in range(len(myList)):
if myList[j] == myList[k]:
print "found a duplicate!"
return
如果这有效,它将在列表中找到重复项(无)。有没有办法忽略 None 或 0 情况?我不在乎两个元素是否为 0。
我想到的另一个解决方案是将列表转换为一个集合,并比较集合和列表的长度以确定是否存在重复项,但在运行 set(myList) 时,它不仅会删除重复项,还会对其进行排序。我可以有单独的副本,但这似乎是多余的。
如果您只是想检查它是否包含重复项。一旦函数找到出现多次的元素,它就会作为重复项返回。
my_list = [1, 2, 2, 3, 4]
def check_list(arg):
for i in arg:
if arg.count(i) > 1:
return 'Duplicate'
print check_list(my_list) == 'Duplicate' # prints True
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)