-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