Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで差がkに等しいすべての異なるペアを検索します


この記事では、kに等しい正確な差を持つ数のペアの数を数える方法を見ていきます。与えられた数値はリストの形式であり、kの値をプログラムに提供します。

forループの使用

このアプローチでは、2つのforループを設計します。外側のforループは、指定されたリストの各要素へのアクセスを追跡します。内側のforループは、残りの各要素を外側のループの要素と比較し続け、必要な差に一致する場合はcount変数の値を増やします。

listA = [5, 3, 7, 2, 9]

k = 2
count = 0

# Elements of the list
for i in range(0, len(listA)):

# Make pairs
   for j in range(i + 1, len(listA)):

      if listA[i] - listA[j] == k or listA[j] - listA[i] == k:
         count += 1

print("Required Pairs: ",count)

出力

上記のコードを実行すると、次の結果が得られます-

Required Pairs: 3

Whileループの使用

別のアプローチでは、whileループをifelse句で使用します。ここでは、2つのペアの差が必要な差と一致するかどうかに応じて、現在のインデックスと次のインデックスをインクリメントし続けます。

listA = [5, 3, 7, 2, 9]

k = 2
count = 0

listA.sort()

next_index = 0
current_index = 0

while current_index < len(listA):
   if listA[current_index] - listA[next_index] == k:
      count += 1
      next_index += 1
      current_index += 1

   elif listA[current_index] - listA[next_index] > k:
      next_index += 1
   else:
      current_index += 1

print("Required Pairs: ",count)

出力

上記のコードを実行すると、次の結果が得られます-

Required Pairs: 3

  1. リスト内のすべてのペア間の絶対差の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 リスト入力が与えられた場合、リスト内のすべてのペア間の絶対差の合計を見つける必要があります。 列挙() メソッドは、反復可能オブジェクトにカウンターを追加し、それを列挙オブジェクトタイプの形式で返します。 この方法では、絶対差を含むリスト「diffs」があります。 2つの変数が初期化された2つのループを使用します。 1つはカウンターを反復処理し、もう1つはリスト要素を反復処理します。すべての反復で、要素が類似しているかどうかを確認します。 そうでない場合は、絶対差を見つけて、それ

  2. Pythonで拡張子が.txtのディレクトリ内のすべてのファイルを見つける方法は?

    os.listdirメソッドを使用して、ディレクトリ内のすべてのディレクトリとファイルを取得できます。次に、リストをフィルタリングしてファイルのみを取得し、それらの拡張子も確認します。 例 >>> import os >>> file_list = [f for f in os.listdir('.') if os.path.isfile(os.path.join('.', f)) and f.endswith('.txt')] >>> print file_list ['LICENS