1一連の数値をループして、数値の範囲 (例: <100) を探しています。
例: リスト = [1, 2, 3, 125, 7, 8, 9, 200]。ファイルに入れたい: 1-3、7-9。私が直面した問題は、外側のループが内側のループ内のアイテムを反復処理するため、得られる出力は 1-3、2-3、3、7-9、8-9、9 であるということです。
機能する私の現在の戦略:
counter = 1
for i in range(len(list)): # outer loop
if counter > 1: # prevents the outer loop from iterating the numbers iterated in inner loop
counter -= 1
continue
elif counter <=1:
while list[i] < 100:
i +=1
counter +=1
if list[i] > 100:
print list[i-counter], '-', list[i]
break
追加のカウンターを使用する代わりに、内側のループで反復されたアイテムをスキップするように外側のループを取得するためのよりPythonicな方法があるかどうか疑問に思っています(上記のように)。ありがとう。
編集: 連続した数字に焦点を当てた返信はほとんどありません. 私の間違い、番号は連続している必要はありません。その範囲の最初と最後の数字だけが必要です。たとえば、list = [1,4,8, 12, 57, 200, 4,34, 300] です。出力: 1 ~ 57、4 ~ 34。リストと条件はユーザーによって異なります。基準は常に比較演算子「<」を含む数値になります。ありがとう。