從不同清單中高效配對排列
您的目標是從兩個清單中產生元素的獨特組合,配對數量由較短列表的長度。讓我們來說明這個概念:
考慮兩個清單:
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中文網其他相關文章!