首页 > 解决方案 > 列表中的 Python 运算符星号

问题描述

为什么这里的输出是 [[2, 1], [ 2 , 1]] 而不是 [[2,1],[ 1 ,1]]

a = [[1] * 2] * 2
a[0][0]=2
print (a)

我对列表中的 * 运算符进行了相当多的研究,但似乎并没有让我得到正确的理解

标签: python

解决方案


当你这样做时,你只是在创建列表的副本,n 次。

所以这里的内部列表实际上是同一个列表。当你修改第一个时,你也在修改第二个。如果您不想要该功能,则可以这样做:

a = [[1 for _ in range(2)] for _ in range(2)]

推荐阅读