2

使用下面创建的矩阵:

matrix = []
for i in range(0, N):
    row = []
    for j in range(0, M):
        row.append(i *j)
    matrix.append(row)

我需要从此矩阵中获取所有行组合。例如:

[matrix[1][1], matrix[2][1], ... , matrix[m][1]]
[matrix[1][1], matrix[2][1], ... , matrix[m][2]]
[...]
[matrix[1][1], matrix[2][n], ... , matrix[m][n]]
[...]
[matrix[1][n], matrix[2][n], ... , matrix[m][n]]

关于如何使用 Python 做到这一点的任何想法?

4

1 回答 1

2

从定义矩阵的更简单方法开始:

>>> M, N = 3, 4
>>> matrix = [
    [i * j for j in range(M)]
    for i in range(N)
]
>>> matrix
[[0, 0, 0], [0, 1, 2], [0, 2, 4], [0, 3, 6]]

然后用itertools.product

import itertools

for row_combination in itertools.product(*matrix):
    print row_combination
(0, 0, 0, 0)
(0, 0, 0, 3)
(0, 0, 0, 6)
...
(0, 2, 4, 3)
(0, 2, 4, 6)
于 2013-07-14T18:05:59.693 回答