gpt4 book ai didi

python - 从 Python 中的新矩阵中删除列而不更改原始矩阵

转载 作者:行者123 更新时间:2023-12-04 00:16:52 26 4
gpt4 key购买 nike

我是编程新手,在 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]]

为什么一直删除原矩阵的第一列?帮助!

最佳答案

我建议阅读shallowdeep 副本之间的区别。

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]]

关于python - 从 Python 中的新矩阵中删除列而不更改原始矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63085124/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com