我有matrix = [[1,2,3],[4,5,6],[7,8,9]]
和matrix2=matrix
。现在我想从矩阵2中删除第一行,即matrix2.remove(matrix[0])
。
但我明白了
>>> matrix2.remove(matrix2[0])
>>> matrix2
[[4, 5, 6], [7, 8, 9]]
>>> matrix
[[4, 5, 6], [7, 8, 9]]
第一行
matrix
也被删除。有人能解释一下吗?以及如何从matrix2
中删除第一行而不更改matrix
最佳答案
尝试:
>>> matrix = [[1,2,3],[4,5,6],[7,8,9]]
>>>
>>> # make matrix2 a (shallow) copy of matrix
>>> matrix2 = matrix[:]
>>> matrix2.remove(matrix[0])
>>> print(matrix2)
[[4, 5, 6], [7, 8, 9]]
隐马尔可夫模型。。。为什么?这是因为语句
matrix2 = matrix
没有“复制”一个值。。。它仅仅意味着名称matrix2
指向与名称matrix
完全相同的值。要实际创建列表的(浅层)副本,我们可以将其切片为
matrix2 = matrix[:]
。这将创建一个名称matrix2
指向包含名称matrix
的所有值的新列表关于python - 从Python中的矩阵中删除行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35428994/