PythonでのNリストのすべての可能な順列
2つのリストがあり、最初の要素の各要素を2番目のリストの各要素と組み合わせる必要がある場合、以下のアプローチがあります。
Forループの使用
この単純なアプローチでは、各リストの要素の順列を含むリストのリストを作成します。別のforループ内にforループを設計します。内側のforループは2番目のリストを参照し、外側のfollowは最初のリストを参照します。
例
A = [5,8] B = [10,15,20] print ("The given lists : ", A, B) permutations = [[m, n] for m in A for n in B ]
出力
上記のコードを実行すると、次の結果が得られます。
The given lists : [5, 8] [10, 15, 20] permutations of the given values are : [[5, 10], [5, 15], [5, 20], [8, 10], [8, 15], [8, 20]]
itertoolsの使用
itertoolsモジュールには、productという名前のイテレータがあります。上記のネストされたforループと同じことを行います。ネストされたforループを内部的に作成して、必要な製品を提供します。
例
import itertools A = [5,8] B = [10,15,20] print ("The given lists : ", A, B) result = list(itertools.product(A,B)) print ("permutations of the given lists are : " + str(result))
出力
上記のコードを実行すると、次の結果が得られます。
The given lists : [5, 8] [10, 15, 20] permutations of the given values are : [(5, 10), (5, 15), (5, 20), (8, 10), (8, 15), (8, 20)]
-
指定された文字列のすべての順列を出力するPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −文字列の可能なすべての順列を表示するために必要な文字列が与えられます。 次に、以下の実装のソリューションを見てみましょう- 例 # conversion def toString(List): return ''.join(List) # permutations def permute(a, l, r): if l == r: print (toString(a)) e
-
Pythonで特定の文字列のすべての可能な順列を見つける方法は?
特定の文字列のすべての可能な順列を見つけるには、permutations(iterable [、r])と呼ばれる便利なメソッドを持つitertoolsモジュールを使用できます。このメソッドは、反復可能な要素の連続するrの長さの順列をタプルとして返します。 すべての順列を文字列として取得するには、関数呼び出しを繰り返し処理してタプルを結合する必要があります。例: >>>from itertools import permutations >>>print [''.join(p) for p in permutations('