Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么';这两种初始化数组的方法有什么区别?_Python_List_Initialization - Fatal编程技术网

Python 什么';这两种初始化数组的方法有什么区别?

Python 什么';这两种初始化数组的方法有什么区别?,python,list,initialization,Python,List,Initialization,及 我发现,如果我使用前者初始化数组,并运行matrix[1][1]=1,它会将每行的第二列设置为1。第二个按我的意愿表演。我不明白为什么 [[0]*1005]*1005将创建一个包含1005个引用的数组,该数组指向一个包含1005个零的数组。它们都是相同的引用,因此更改其中一个将更改所有其他引用。不过,您可以将工作代码缩短为: matrix = [[0 for _ in range(1005)] for _ in range(1005)] 这几乎是关于列表乘法语法的唯一警告,实际上:)[[0


我发现,如果我使用前者初始化数组,并运行
matrix[1][1]=1
,它会将每行的第二列设置为1。第二个按我的意愿表演。我不明白为什么

[[0]*1005]*1005
将创建一个包含1005个引用的数组,该数组指向一个包含1005个零的数组。它们都是相同的引用,因此更改其中一个将更改所有其他引用。不过,您可以将工作代码缩短为:

matrix = [[0 for _ in range(1005)] for _ in range(1005)]

这几乎是关于列表乘法语法的唯一警告,实际上:)

[[0]*1005]*1005
将创建一个包含1005个引用的数组,该数组包含1005个零。它们都是相同的引用,因此更改其中一个将更改所有其他引用。不过,您可以将工作代码缩短为:

matrix = [[0 for _ in range(1005)] for _ in range(1005)]

这几乎是所有人对列表乘法语法给出的唯一警告,实际上:)

只是为了扩展已经说过的内容

matrix = [[0] * 1005 for _ in range(1005)]

只是为了扩大已经说过的内容

matrix = [[0] * 1005 for _ in range(1005)]

你能在python参考中给我一个关于这个的链接吗。实际上,
[0]*1005
的意思是什么。谢谢。@user674199:。请参阅s*n:“n个串联的s的浅拷贝”。
[0]*1005
是可以的,因为整数是不可变的。你能在python参考中给我一个关于这个的链接吗。实际上,
[0]*1005
的意思是什么。谢谢。@user674199:。请参阅s*n:“n个串联的s的浅拷贝”。
[0]*1005
是可以的,因为整数是不可变的。可能是Oops的重复。这不是我想要选择的问题。可能是Oops的重复。这不是我想要选择的问题。