2016-09-05 4 views
-2

です。次のpythonリスト[0.0、5.0、2.0、0.0、0.30000000000000004]を持っています。項目0.5未満リスト内の特定の範囲の連続したアイテムを見つける方法は、

期待される結果: を[0.0、5.0、2.0、0.0、0.30000000000000004] 2

+0

は、あなたがこれまで試みられてきましたか? –

+0

具体的に何が難しいのですか?あなたが試みたことを言わないと、それがなぜ失敗したのか、あなたの問題に対処するのは難しいです。 –

+0

リスト内で必要な範囲を満たすアイテムの数を出力することができました。どのような悩みは私が他の人から連続したアイテムを分離する方法です –

答えて

0

の出力を与えるべきであるあなたがダウンし、ここでの作業サンプルを見つけることができます。

list = [0.0, 5.0, 2.0, 0.0, 0.30000000000000004] 
listDict = {} 

for idx, val in enumerate(list): 
    for idx2, val2 in enumerate(list): 
     if idx != idx2 and list[idx] != list[idx2] and abs(list[idx] - list[idx2]) < 0.5: 
      listDict[str(list[idx])] = True 
      listDict[str(list[idx2])] = True 

print (len(listDict)) 

そして、これはですライブサンプルでは0です。

+0

@ジムこれはPython 3ですので、あなたは私にアップ票を与えませんか? – webmaster

0

可能性のある、しかし、不安定なアプローチ:

def number_of_consecutive(data, min_threshold, max_threshold): 

    sum_consec, max_value = 0,0 

    for element in data: 
     if element <= max_threshold and element >= min_threshold: 
      sum_consec += 1 
      if sum_consec > max_value: 
       max_value = sum_consec 
     else: 
      sum_consec = 0 
    return max_value 

与えられたリストについては、0.5の範囲0内の要素を検索するには:

print number_of_consecutive([0.0, 5.0, 2.0, 0.0, 0.30000000000000004], 0.0, 0.5) 
"2" 
関連する問題