python - 列表中的 Python 运算符星号
问题描述
为什么这里的输出是 [[2, 1], [ 2 , 1]] 而不是 [[2,1],[ 1 ,1]]
a = [[1] * 2] * 2
a[0][0]=2
print (a)
我对列表中的 * 运算符进行了相当多的研究,但似乎并没有让我得到正确的理解
解决方案
当你这样做时,你只是在创建列表的副本,n 次。
所以这里的内部列表实际上是同一个列表。当你修改第一个时,你也在修改第二个。如果您不想要该功能,则可以这样做:
a = [[1 for _ in range(2)] for _ in range(2)]
推荐阅读
- python - 为什么在keras的第二个convolution2d上没有提到输入形状?
- algorithm - 这个循环优化叫什么,它是如何工作的?
- java - Java抛出空指针异常并终止,即使我希望有空指针
- linux - Linux 函数分析器输出
- mongodb - mongo 聚合 $facet 和分组询问
- r - 无法初始化本机深度学习后端:未找到后端
- reactjs - 在反应的输入标签中添加状态变量值
- java - 谷歌应用引擎 - 使用 gcs-client 在后台线程中读取/写入文件到 gcs
- angular - 角度动态形式的优势是什么?
- multidimensional-array - 更改数组数组中的键?