python 生成多维数组

在刷题时用到了数组,因为不提供三方库所以不能使用Numpy。想如何通过python列表模拟数组。

第一种方法

"""
生成n*m的初始值为0的矩阵
"""
n = 5
m = 3
a = [[0 for j in range(m)] for i in range(n)]
print(a)

结果:

第二种方法

#coding=gbk
"""
生成n*m的初始值为0的矩阵
"""
n = 5
m = 3
b = [[0]*m for i in range(n)]

结果

注意:不能使用下面代码生成矩阵

#coding=gbk
"""
生成n*m的初始值为0的矩阵
"""
n = 5
m = 3
b = [0]*m
b = [b]*n
print(b)

结果虽然是

但是如果我们改变(b)中的一个值会发现

#coding=gbk
"""
生成n*m的初始值为0的矩阵
"""
n = 5
m = 3
b = [0]*m
b = [b]*n
b[0][1] = 1
print(b)

这是因为浅拷贝的原因。

原文地址:https://www.cnblogs.com/lolybj/p/11424726.html