假设我有 n 个列表,并且它们不是不相交的。我想要制作 n 个元素的每一种组合,我从我拥有的每个列表中获得一个元素,但在该组合中存在不同的元素,并且没有双重组合。所以,[1,1,2]
不允许并且 [1,2,3]
与 [2,1,3]
相同.
例如,我有A=[1,2,3]
, B=[2,4,1]
,和C=[1,5,3]
。所以,我想要的输出是 [[1,2,5],[1,2,3],[1,4,5],[1,4,3],[2,4,1],[2,4,5],[2,4,3],[3,2,5],[3,4,5],[3,1,5]]
.
我有搜索谷歌,我认为功能product
在模块 itertools
可以做到。但是,我不知道如何在每个组合中都不使用相同的元素,并且不使用双重组合。
最佳答案
也许是这样的:
from itertools import product
A=[1,2,3]
B=[2,4,1]
C=[1,5,3]
L = list(set([ tuple(sorted(l)) for l in product(A,B,C) if len(set(l))==3 ]))
当然,如果您使用超过 3 个列表,则必须更改相关值 3
。
关于python - 如何创建不同集合中元素的组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41259592/