2017-03-08 19 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

辞書を使用して要素の数を保持し、要素が2回出現する場合(ゼロでない場合)は答えが真であるため、ループから外れます。

はこれを試してみてください。

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 

注:より良い方法がありますが、この1を理解することは本当に簡単です。

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 
関連する問題