python - 当您使用 list.copy() 但一维列表只是一个副本时,为什么列表列表是对对象的引用?
问题描述
这是输出的屏幕截图。请解释为什么它会以这种方式工作,并为我提供有关如何制作列表列表副本的解决方案
matrix = [['I','A','O','O','I'],['I','A','O','O','I'],['I','A','O','O','I'],['I','A','O','O','I'],['I','A','O','O','I']]
matrix_1d = ['I','A','O','O','I']
matrix2 = matrix.copy()
matrix2_1d = matrix_1d.copy()
def printMat(m):
for i in range(len(m)):
print (m[i])
matrix[0][0] = 'lol'
matrix2[0][1] = 'kek'
matrix_1d[0] = 'lol'
matrix2_1d[1] = 'kek'
printMat(matrix)
print("_")
printMat(matrix2)
print("_")
print(matrix_1d)
print("_")
print(matrix2_1d)
解决方案
推荐阅读
- javascript - 如何在 ReactJS 中将数据传递给表单?
- ios - 我想从另一个示例 iOS 应用程序调用我的 iOS 应用程序单元测试
- python-3.x - 一个=“蟒蛇”。我想要输出:python。任何可能的循环
- postgresql - 使用动态查询跨不同表的 Postgresql 查询
- analytics - GA 没有跟踪每个用户
- vb.net - 如何使用带 Where 子句的 Select 填充 DataGridView 使用 parameters.addwithvalue?
- android - 在 Recyclerview 中显示多个对象类型
- excel - 如何解决:如果 value 为 true,则计算结果与其他不同的 if 语句结果?
- jquery - 如何使用jquery在选择框中设置双引号值
- javascript - 没有从第二个输入字段得到总数?