【发布时间】:2010-06-14 00:29:36
【问题描述】:
我希望得到一个由唯一随机数组成的网格。相反,每一行都是相同的数字序列。这是怎么回事?
from pprint import pprint
from random import random
nrows, ncols = 5, 5
grid = [[0] * ncols] * nrows
for r in range(nrows):
for c in range(ncols):
grid[r][c] = int(random() * 100)
pprint(grid)
示例输出:
[[64, 82, 90, 69, 36],
[64, 82, 90, 69, 36],
[64, 82, 90, 69, 36],
[64, 82, 90, 69, 36],
[64, 82, 90, 69, 36]]
【问题讨论】:
-
啊,没关系。问题是我创建网格的方式使每一行都成为对同一个列表的引用。如果将行更改为 grid = [[0] * ncols for row in range(ncols)],它会起作用
标签: python random multidimensional-array