解決済み: python 連番の違い

Python の連番の違いに関連する主な問題は、1 つの連番の違いが常に同じではないことです。 たとえば、数値 [2, 3, 1] のリストがある場合、2 と 1 の差は 2 ですが、3 と 0.5 の差は XNUMX しかありません。 これは、値の差を計算しようとするとき、または一定のステップ サイズに依存するアルゴリズムを使用するときに、混乱を招く可能性があります。

def consecutive_difference(nums): 
    diff = [] 
    for i in range(len(nums)-1): 
        diff.append(abs(nums[i] - nums[i+1])) 
    return diff 
  
# Driver code 
nums = [2, 4, 6, 8] 
print(consecutive_difference(nums))

# 行 1: この行は、引数 nums を XNUMX つ受け取る連続_差分という関数を定義します。
# 2 行目: この行は diff という空のリストを作成します。
# 3 行目: この行は、nums から XNUMX を引いた長さを繰り返す for ループです。
# 4 行目: この行は、nums の各要素間の差の絶対値を diff リストに追加します。
# 5 行目: この行は、num の連続する要素間のすべての相違点が入力された後に、相違点リストを返します。
# 8 行目: この行は、nums という変数を、2、4、6、および 8 を含むリストに等しく設定します。
# 9 行目: この行は、nums で Continuous_difference を呼び出した結果を出力します。

Python でリスト内の連続した数字を見つける

Python でリスト内の連続する数字を見つけるのは比較的簡単です。 最も簡単な方法は、リストをループして、各要素をその前の要素と比較することです。 1 つの要素の差が XNUMX の場合、それらは連続した数です。

これを行う方法の例を次に示します。

numbers = [1,2,3,4,5,6] # 数字のリスト
serial_numbers = [] # 連番を格納するリスト
for i in range(len(numbers)-1): # リストをループ
if (numbers[i+1] – numbers[i]) == 1: # 1 つの要素の差が XNUMX かどうかを確認します
continuous_numbers.append(numbers[i]) # 連続した数字のリストに要素を追加します
continuous_numbers.append(numbers[i+1]) # 次の要素を連続した数字のリストに追加します
print(consecutive_numbers) # 連続した数字のリストを出力します

リスト内の連続する数字の差を取得する

Python では、zip() 関数を使用して、リスト内の連続する数値の差を取得できます。 zip() 関数は XNUMX つ以上の iterable を受け取り、タプルの反復子を返します。 渡された各 iterable の最初の項目がペアになり、次に渡された各 iterable の XNUMX 番目の項目がペアになり、以降も同様です。 リスト内の連続する数字の差を取得するには、zip() を使用して各数字をその前の数字とペアにし、それらを差し引いて差を取得します。 例えば:

リスト番号 = [1, 2, 3, 4]
違い = [y – x の場合は x、zip の場合は y(list_numbers[:-1], list_numbers[1:])]
print(differences) # 出力: [1, 1, 1]

関連記事:

コメント