2017-03-08 783 views
-4

我想檢查數組列表中是否有重複元素大於0。檢查Python中的列表中是否有重複值(> 0)

if [1,0,0,0,1,2] = true 

if [0,0,0,0,0,0] = false 

我該如何得到這個結果?

+0

爲什麼第二種情況是假的?你甚至想問什麼? – anekix

+3

可能重複[在列表中查找並列出重複項?](http://stackoverflow.com/questions/9835762/find-and-list-duplicates-in-a-list) – Bobby

+0

@anekix我想檢查重複超過0值的元素。 – Chathurika

回答

-1

使用字典來保持元素的數量,如果一個元素出現兩次(這不是零),那麼你的答案是真實的,所以只是從循環中斷開。

試試這個:

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 

注:更好的辦法是有,但這個是非常簡單明白。

0

我猜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 
相關問題