順列のマッチング: 長いリストと短いリストの整列
長さの異なる 2 つのリストが与えられた場合、リストの長さに基づいてペアを作成することを目指します。短いリスト。短いリストの各要素は、長いリストの要素の順列に対応する必要があります。
たとえば、名前 = ['a', 'b'] および数値 = [1, 2] の場合、
[('a', 1), ('b', 2)] [('b', 1), ('a', 2)]
名前 = ['a', 'b', 'c'] のように名前リストが長い場合、順列は以下を含むように拡張されます:
[('a', 1), ('b', 2)] [('b', 1), ('a', 2)] [('a', 1), ('c', 2)] [('c', 1), ('a', 2)] [('b', 1), ('c', 2)] [('c', 1), ('b', 2)]
itertools.product を使用した解決策
簡単なアプローチは、Python 標準ライブラリの itertools.product 関数を利用することです。入力反復可能オブジェクトのデカルト積を生成し、可能なすべての組み合わせを作成します。
import itertools a = ["foo", "melon"] b = [True, False] c = list(itertools.product(a, b)) # Output: # [("foo", True), ("foo", False), ("melon", True), ("melon", False)]
この特定のケースでは、 itertools.product を使用して、短いリストの要素と長いリストの順列を組み合わせることができます。順列は、長いリストの要素の可能な並べ替えをすべてリストすることによって生成されます。
以上が順列を使用して短いリストと長いリストの要素をペアにする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。