python - 从 Python 中的新矩阵中删除列而不更改原始矩阵
问题描述
我是编程新手,我在 Python 中遇到了这个问题。请注意,我不能在此代码中使用 numPy。所以我将矩阵复制到new_matrix。我想删除 new_matrix 中的第一行和第一列而不更改原始矩阵中的任何内容。这是代码:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_matrix = matrix.copy()
print('old: ', matrix)
print('new: ', new_matrix)
for i in range(len(new_matrix)):
del new_matrix[i][0]
print('old: ', matrix)
print('new: ', new_matrix)
del new_matrix[0]
print('old: ', matrix)
print('new: ', new_matrix)
结果是这样的:
old: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
old: [[2, 3], [5, 6], [8, 9]]
new: [[2, 3], [5, 6], [8, 9]]
old: [[2, 3], [5, 6], [8, 9]]
new: [[5, 6], [8, 9]]
为什么它不断删除原始矩阵的第一列?帮助!
解决方案
shallow
我建议阅读和deep
复制之间的区别。
import copy
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_matrix = copy.deepcopy(matrix)
print('old: ', matrix)
print('new: ', new_matrix)
for i in range(len(new_matrix)):
del new_matrix[i][0]
print('old: ', matrix)
print('new: ', new_matrix)
del new_matrix[0]
print('old: ', matrix)
print('new: ', new_matrix)
输出:
old: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
old: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new: [[2, 3], [5, 6], [8, 9]]
old: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new: [[5, 6], [8, 9]]
推荐阅读
- jmeter - 运行性能指标收集器时 PerfMonCollector 侦听器的 Jmeter 插件错误
- c# - 请求被中止:无法创建 SSL/TLS 安全通道(支付网关)
- angular - 使用数据集中的值动态填充下拉列表
- node.js - 如何在 Mongoose 中获取对象数组而不是 _id
- laravel - 为具有特定角色的特定用户添加和撤销权限
- python - 有没有办法在 Qt 的paintEvent 中应用效果?
- google-cloud-platform - 如何列出整个 GCP 资产中具有特定角色的所有资源?
- google-cloud-platform - 如何在 Google Cloud Platform 中获取用户托管服务帐户的公钥
- android - 如何为房间数据库中的多列编写选择查询?
- hadoop - 在现有的单节点 hadoop 上安装 ambari