当前位置: 代码迷 >> python >> 如何返回所有可能的组合
  详细解决方案

如何返回所有可能的组合

热度:19   发布时间:2023-07-14 08:45:27.0

我有以下多个数组

A[0] = [a1, a2, a3]
A[1] = [b1, b2]
...
A[k-1] = [k1, ...]

我想生成所有矢量[a?, b?, ..., k?] ,但我看过itertool库,但这并不能满足我的需要。

我该怎么做。 (我虽然是关于递归的,但是我想有一个更简单的解决方案)。

您将使用 :

from itertools import product


for vector in product(*A):
    # vector is [a[0], b[0], ..., k[0]] through to [a[k-1], [b[k-1], ..., k[k-1]]
    # odometer style

演示:

>>> from itertools import product
>>> A = [[1, 2, 3], ['foo', 'bar'], ['spam', 'eggs']]
>>> for vector in product(*A):
...     print vector
... 
(1, 'foo', 'spam')
(1, 'foo', 'eggs')
(1, 'bar', 'spam')
(1, 'bar', 'eggs')
(2, 'foo', 'spam')
(2, 'foo', 'eggs')
(2, 'bar', 'spam')
(2, 'bar', 'eggs')
(3, 'foo', 'spam')
(3, 'foo', 'eggs')
(3, 'bar', 'spam')
(3, 'bar', 'eggs')
  相关解决方案