做推广的的网站模板,后台网站开发文档,推广网站建设语句,网图素材库Python中初始化一个5 x 3每项为0的数组#xff0c;最好方法是#xff1a;multilist [[0 for col in range(5)] for row in range(3)]我们知道#xff0c;为了初始化一个一维数组#xff0c;我们可以这样做#xff1a;alist [0] * 5没错#xff0c;那我们初始化一个二维…Python中初始化一个5 x 3每项为0的数组最好方法是multilist [[0 for col in range(5)] for row in range(3)]我们知道为了初始化一个一维数组我们可以这样做alist [0] * 5没错那我们初始化一个二维数组时是否可以这样做呢multi [[0] * 5] * 3其实这样做是不对的因为[0] * 5是一个一维数组的对象* 3的话只是把对象的引用复制了3次比如我修改multi[0][0]multi [[0] * 5] * 3multi[0][0] Love Chinaprint multi输出的结果将是[[Love China, 0, 0, 0, 0], [Love China, 0, 0, 0, 0], [Love China, 0, 0, 0, 0]]我们修改了multi[0][0]却把我们的multi[1][0]multi[2][0]也修改了。这不是我们想要的结果。如果我们这样写呢multilist [[0] * 5 for row in range(3)]multilist[0][0] Love Chinaprint multilist我们看输出结果[[Love China, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]恩没问题。但是由于使用 * 的方法比较容易引起混淆导致Bug所以还是推荐使用上面第一种方法即multilist [[0 for col in range(5)] for row in range(3)]还可以这样:a[0 for col in range(10)] a[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] a[multilist for t in range(4)] a[[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]] b[a[i][1][1] for i in range(3) ] b[0, 0, 0]这里,主要是for的妙用,python中特有的简单化处理