匹配排列:對齊長列表和短列表
給定兩個不同長度的列表,我們的目標是根據列表的長度建立配對更短的清單。較短列表中的每個元素應對應於較長列表中元素的排列。
例如,名稱= ['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中文網其他相關文章!