python - 为什么我的函数要修改输入变量?
问题描述
嗨,我有一个旋转矩阵的函数,但是我不知道它为什么起作用。
def rotate(matrix):
matrix[:] = [[row[i] for row in matrix[::-1]] for i in range(len(matrix))]
我知道“[:]”会创建原始矩阵的副本,但为什么原始矩阵也会旋转?
如果我想在不修改输入的情况下返回一个新的旋转矩阵,我该怎么办?
谢谢!!!
解决方案
使用array[:] = [...]
覆盖数组内的值。最简单的解决方案是直接返回结果并将函数的返回值存储在一个新变量中。
def rotate(matrix):
return [[row[i] for row in matrix[::-1]] for i in range(len(matrix))]
rot_matrix = rotate(matrix)
推荐阅读
- c - 如何修复“错误:赋值给数组类型的表达式”?
- java - 倒计时结束后恢复应用
- java - 双编码 UTF-8 字符串 - MySql,Hibernate
- python - 刮掉阿里巴巴的产品
- cmake - 在 macOS 上使用 Ninja 进行 CMake GUI
- reactjs - 在 create-react-app 托管服务器上使用代理的 Axios 发布不起作用
- html - 如何让我的图像一直拉伸?
- excel - excel中包含名称和日期的行到列
- sql - SQL duplicate counting headache
- create-react-app - Koa and Create-React-App Router not found