a = [3,19,13]
b = [20,18,7]
示例输出1:
[[3, 19, 13], [3, 19, 7], [3, 18, 13], [3, 18, 7], [20, 19, 13], [20, 19, 7], [20, 18, 13], [20, 18, 7]]
示例输入2:
a = ['A','B']
b = ['C','D']
示例输出2:
[['A', 'B'], ['A', 'D'], ['C', 'B'], ['C', 'D']]
我正在努力寻找正确的数学术语来确切定义我的要求。我认为排列,组合或笛卡尔产品不够正确或足够精确。
您可以通过获取列表n'ter条款集的产品来计算这一点。每个集合都包含新列表的n'th元素的所有选择,因此所有集合的产品将是这些选择的所有可能组合。
实施方面,您可以使用
zip
将“集合”收集到列表中,然后
itertools.product
SetLists
Sets/listss.
import itertools
def get_paths(*iterables):
return list(itertools.product(*zip(*iterables)))
a = [3,19,13]
b = [20,18,7]
print(get_paths(a, b))
a = ['A','B']
b = ['C','D']
print(get_paths(a, b))