我正在嘗試做一個演算法,在其中找到兩個串列之間的所有可能組合,但我不確定我們如何在數學中呼叫這種型別的組合:
Input:
List 1 : [a,b,c,d] and List 2 : [1,2,3,4]
Desired output:
[a1, a2, a3,a4, b2, b3, b4, c3,c4, d4]
我最好在 python 或 c 中尋找答案,但我也開放任何其他語言
uj5u.com熱心網友回復:
預期的輸出在數學上類似于帶有替換的組合,除了您從不同的池中提取第二個選擇之外,因此您可以itertools.combinations_with_replacement通過傳遞壓縮在一起的兩個串列然后選擇第一個元組的第一項和來自生成的輸出組合序列的第二個元組的第二項:
from itertools import combinations_with_replacement
l1 = list('abcd')
l2 = list('1234')
print([a b for (a, _), (_, b) in combinations_with_replacement(zip(l1, l2), 2)])
這輸出:
['a1', 'a2', 'a3', 'a4', 'b2', 'b3', 'b4', 'c3', 'c4', 'd4']
演示:https ://replit.com/@blhsing/DelectablePettyMolecule
uj5u.com熱心網友回復:
這與獲取所有組合并不完全相同——您要做的是迭代整個第一個串列,并且對于第一個串列中的每個專案,僅迭代第二個串列中位于索引之后的專案第一個串列中的專案。在 Python 中,這將類似于:
>>> list_1 = list('abcd')
>>> list_2 = list('1234')
>>> [x y for i, x in enumerate(list_1) for y in list_2[i:]]
['a1', 'a2', 'a3', 'a4', 'b2', 'b3', 'b4', 'c3', 'c4', 'd4']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/510095.html
上一篇:請讓我知道我哪里出錯了
