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

Python-要素がペアで同じにならないように、2つのリストからペアを作成します


この記事では、類似した要素がペアにならないように、2つのリストからペアを作成する方法を学習します。以下の手順に従って問題を解決してください。

  • 要素を使用してリストを初期化します。
  • リストを繰り返し処理し、リストの対応する要素が同じでない場合は、ペアをリストに追加します。
  • 結果を印刷します。

コードを見てみましょう。

# initializing the lists
list_1 = [1, 2, 3, 4, 5]
list_2 = [5, 8, 7, 1, 3, 6]

# making pairs
result = [(i, j) for i in list_1 for j in list_2 if i != j]

# printing the result
print(result)
を出力する

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

出力

[(1, 5), (1, 8), (1, 7), (1, 3), (1, 6), (2, 5), (2, 8), (2, 7), (2, 1), (2, 3), (2, 6), (3, 5), (3, 8), (3, 7), (3, 1), (3, 6), (4, 5), (4, 8), (4, 7), (4, 1), (4, 3), (4, 6), (5, 8), (5, 7), (5, 1), (5, 3), (5, 6)]

itertoolsモジュールでも問題を解決できます。これは、すべての要素のペアを作成するproductと呼ばれるメソッドを提供します。ペアを見つけたら、ペアをフィルタリングできます。

コードを見てみましょう。

# importing the module
import itertools

# initializing the lists
list_1 = [1, 2, 3, 4, 5]
list_2 = [5, 8, 7, 1, 3, 6]

# pairs
pairs = itertools.product(list_1, list_2)

# filtering the pairs
result = [pair for pair in pairs if pair[0] != pair[1]]

# printing the result
print(result)
をフィルタリングします

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

出力

[(1, 5), (1, 8), (1, 7), (1, 3), (1, 6), (2, 5), (2, 8), (2, 7), (2, 1), (2, 3), (2, 6), (3, 5), (3, 8), (3, 7), (3, 1), (3, 6), (4, 5), (4, 8), (4, 7), (4, 1), (4, 3), (4, 6), (5, 8), (5, 7), (5, 1), (5, 3), (5, 6)]

結論

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


  1. Pythonで葉のシーケンスが2つの葉と同じであるかどうかを確認するプログラム

    2つの二分木があるとします。両方の木の左から右への葉の順序が同じであるかどうかを確認する必要があります。 したがって、入力が次のような場合 両方のツリーのシーケンスが[2、6]であるため、出力はTrueになります。 これを解決するには、次の手順に従います。 c:=新しいリスト 関数inorder()を定義します。これが定着し、c cがnullの場合、 c:=新しいリスト rootがnullでない場合、 順序(ルートの左側、c) ルートの左側がnullで、ルートの右側がnullの場合、 cの最後にrootの値を挿入 順序(ルートの権利、c) return c

  2. ペア要素がPythonの異なるBSTにあるように、指定された合計を持つペアを検索します

    2つの二分探索木が与えられ、別の合計が与えられたとします。各ペア要素が異なるBSTに存在する必要があるように、与えられた合計に関してペアを見つける必要があります。 したがって、入力がsum=12のような場合 その場合、出力は[(6、6)、(7、5)、(9、3)]になります。 これを解決するには、次の手順に従います- 関数solve()を定義します。これには、trav1、trav2、Sumが必要です。 左:=0 右:=trav2のサイズ-1 res:=新しいリスト 左=0の間、実行 trav1 [left] + trav2 [right]がSumと