異なるリストから順列を効率的にペアリングする
目的は、ペアリングの数を基準にして、2 つのリストから要素の一意の組み合わせを生成することです。短い方のリストの長さ。この概念を説明してみましょう:
2 つのリストを考えてみましょう:
names = ['a', 'b'] numbers = [1, 2]
望ましい出力は次のようになります:
[('a', 1), ('b', 2)] [('b', 1), ('a', 2)]
これを達成するには、Python の機能を利用できます。 itertools.製品。その仕組みは次のとおりです:
<code class="python">from itertools import product a = ['foo', 'melon'] b = [True, False] c = list(product(a, b))</code>
積を利用すると、可能なすべてのペアの組み合わせが得られます:
[('foo', True), ('foo', False), ('melon', True), ('melon', False)]
一方のリストが他方のリストより長いシナリオ (例: 名前に 3 つのリストがある)要素は 2 つしかありませんが、数値には 2 つしかありません)、順列は短いリストに基づいて計算されます:
names = ['a', 'b', 'c'] numbers = [1, 2]
期待される出力:
[('a', 1), ('b', 2)] [('b', 1), ('a', 2)] [('a', 1), ('c', 2)] [('c', 1), ('a', 2)] [('b', 1), ('c', 2)] [('c', 1), ('b', 2)]
このアプローチにより、必要なすべての可能な組み合わせを確実に取得できます。入力リストの相対的な長さに関係なく、特定のユースケースに合わせて使用できます。
以上が異なる長さのリストから順列を効率的にペアにする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。