Python 3.x寻址多维列表

时间:2015-04-11 22:01:57

标签: python list multidimensional-array

此代码:

import pprint
pp = pprint.PrettyPrinter()
matrix = [[None]*6]*6
ROWS = len(matrix)
COLS = len(matrix[0])
for row in range(ROWS):
    for col in range(COLS):
        matrix[row][col] = row+col
pp.pprint(matrix)

打印出来:

[[5, 6, 7, 8, 9, 10],
[5, 6, 7, 8, 9, 10],
[5, 6, 7, 8, 9, 10],
[5, 6, 7, 8, 9, 10],
[5, 6, 7, 8, 9, 10],
[5, 6, 7, 8, 9, 10]]

此代码产生所需的结果:

import numpy
import pprint
ROWS = 6
COLS = 6
matrix = numpy.zeros((ROWS,COLS))
for row in range(ROWS):
    for col in range(COLS):
        matrix[row][col] = row+col
pp.pprint(matrix)

并输出:

[[  0.,   1.,   2.,   3.,   4.,   5.],
[  1.,   2.,   3.,   4.,   5.,   6.],
[  2.,   3.,   4.,   5.,   6.,   7.],
[  3.,   4.,   5.,   6.,   7.,   8.],
[  4.,   5.,   6.,   7.,   8.,   9.],
[  5.,   6.,   7.,   8.,   9.,  10.]]

我以为我知道多级列表是如何工作的但我猜不是。什么可能导致我的代码将相同的值分配给列表中的每一行?

0 个答案:

没有答案