首頁  >  文章  >  後端開發  >  如何有效配對不同長度清單中的排列?

如何有效配對不同長度清單中的排列?

Barbara Streisand
Barbara Streisand原創
2024-10-29 01:03:02607瀏覽

How to Efficiently Pair Permutations from Lists of Disparate Lengths?

從不同清單中高效配對排列

您的目標是從兩個清單中產生元素的獨特組合,配對數量由較短列表的長度。讓我們來說明這個概念:

考慮兩個清單:

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)]

在一個清單比另一個清單長的情況下(例如,名稱有三個)元素(而數字只有兩個),排列仍將根據較短的列表進行計算:

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn