-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
この結果はどのように取得できますか?
辞書を使用して要素の数を保持し、要素が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を理解することは本当に簡単です。
私は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