使用列表理解生成2D网格索引



我想将3 x 3列表的行和列索引存储在列表中。它应该如下所示:

rc = [(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]

如何使用Python中的列表理解来获得此列表?

有些人认为列表理解中的多个for循环是糟糕的风格。改为使用itertools.product()

from itertools import product
list(product(range(3), repeat=2))

该输出:

[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

怎么样:

[(x, y) for x in range(3) for y in range(3)]

如果我理解正确,并且输入是A,那么B可以输出如下:

A = [[1,2,3],[4,5,6],[7,8,9]]
B =[(A[i], A[j]) for i in range(3) for j in range(3)]

最新更新