Python 在多维列表中迭代,结果没有意义
有人能给我解释一下这段代码(python 2.7)的原因吗 结果如下:Python 在多维列表中迭代,结果没有意义,python,python-2.7,for-loop,multidimensional-array,Python,Python 2.7,For Loop,Multidimensional Array,有人能给我解释一下这段代码(python 2.7)的原因吗 结果如下: [[17, 18, 19, 20], [17, 18, 19, 20], [17, 18, 19, 20], [17, 18, 19, 20], [17, 18, 19, 20]] 与此相反: [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20]] 我不确定我遗漏了什么…?这里是这一行:img=
[[17, 18, 19, 20],
[17, 18, 19, 20],
[17, 18, 19, 20],
[17, 18, 19, 20],
[17, 18, 19, 20]]
与此相反:
[[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16],
[17, 18, 19, 20]]
我不确定我遗漏了什么…?这里是这一行:
img=[[0]*4]*5
基本上,您是在创建对数组的引用,而不是创建一个新的引用(对于第二维度)。这就解释了为什么最后一行是整个过程中重复的一行,因为它是最后一个要迭代的行。很抱歉,后面的内容不太清楚。你能解释一下“创建引用”吗?问题不在于编辑,而在于初始化。您需要使用
img=[[0表示范围(4)中的i]表示范围(5)中的j]
,这将创建您所期望的内容。
[[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16],
[17, 18, 19, 20]]