获取两个列表之间所有可能的组合,包括多个连接
Get all possible combinations between two lists, including multiple connections
有
import itertools
l1 = [1,2,3,4]
l2 = [1,2,3,4]
x = itertools.product(l1, l2)
print(list(x))
我得到了列表 l1 和 l2 的 16 种可能的单独组合,[(1,1), (1,2), ... ]
等。有没有一种方法也可以通过多种方式获得 'connect' 列表的组合?例如,我可以有以下组合 [(1,1), (2,3)]
、[(1,3), (2,4), (3,2)]
和 [(1,2), (2,4), (3,3), (4, 1)]
.
如有任何帮助,我们将不胜感激。
这是您要实现的目标吗?
from itertools import permutations
l1 = [1,2,3,4]
l2 = [1,2,3,4]
for i in l1:
a= permutations(l2,i)
for m in list(a):
print(m)
您可以将问题视为将 l1
个球放入 l2
个箱子。请参阅 了解如何生成所有这些展示位置。
因为在您的示例中,有些地方的任何垃圾箱中都没有一些球,我们可以通过引入一个额外的垃圾箱来处理这个问题,我们将其指定为垃圾箱(换句话说,球最终落在在此箱中,将被视为缺席)。
有
import itertools
l1 = [1,2,3,4]
l2 = [1,2,3,4]
x = itertools.product(l1, l2)
print(list(x))
我得到了列表 l1 和 l2 的 16 种可能的单独组合,[(1,1), (1,2), ... ]
等。有没有一种方法也可以通过多种方式获得 'connect' 列表的组合?例如,我可以有以下组合 [(1,1), (2,3)]
、[(1,3), (2,4), (3,2)]
和 [(1,2), (2,4), (3,3), (4, 1)]
.
如有任何帮助,我们将不胜感激。
这是您要实现的目标吗?
from itertools import permutations
l1 = [1,2,3,4]
l2 = [1,2,3,4]
for i in l1:
a= permutations(l2,i)
for m in list(a):
print(m)
您可以将问题视为将 l1
个球放入 l2
个箱子。请参阅
因为在您的示例中,有些地方的任何垃圾箱中都没有一些球,我们可以通过引入一个额外的垃圾箱来处理这个问题,我们将其指定为垃圾箱(换句话说,球最终落在在此箱中,将被视为缺席)。