-4
我想检查数组列表中是否有重复元素大于0。检查Python中的列表中是否有重复值(> 0)
if [1,0,0,0,1,2] = true
if [0,0,0,0,0,0] = false
我该如何得到这个结果?
我想检查数组列表中是否有重复元素大于0。检查Python中的列表中是否有重复值(> 0)
if [1,0,0,0,1,2] = true
if [0,0,0,0,0,0] = false
我该如何得到这个结果?
使用字典来保持元素的数量,如果一个元素出现两次(这不是零),那么你的答案是真实的,所以只是从循环中断开。
试试这个:
l = [0,0,0,0]
dic = {}
flag = False
for i in l:
if i in dic:
dic[i]+=1
if dic[i]>1 and i!=0:
flag = True
break
else:
dic[i] = 1
print flag
注:更好的办法是有,但这个是非常简单明白。
我猜OP只想处理自然数。试试这个:
def is_duplicated_natural_numbers(input):
# make it >0
natural_numbers_list = list(filter(lambda x: x > 0, input))
# remove duplicates
set_list = list(set(natural_numbers_list))
# if natural_numbers_list == set_list, no natural numbers duplicates
return natural_numbers_list != set_list
print(is_duplicated_natural_numbers([1,0,0,0,1,2])) # True
print(is_duplicated_natural_numbers([0,0,0,0,0,0])) # False
print(is_duplicated_natural_numbers([1,2,3,4,5,1])) # True
为什么第二种情况是假的?你甚至想问什么? – anekix
可能重复[在列表中查找并列出重复项?](http://stackoverflow.com/questions/9835762/find-and-list-duplicates-in-a-list) – Bobby
@anekix我想检查重复超过0值的元素。 – Chathurika