python用for循环二维数组进行旋转90度
时间: 2023-07-24 14:14:18 浏览: 101
您可以使用以下代码来旋转一个二维数组90度:
```python
def rotate_90(matrix):
rows = len(matrix)
cols = len(matrix[0])
# 创建一个新的二维数组,尺寸为旋转后的尺寸
rotated = [[0] * rows for _ in range(cols)]
# 旋转操作
for i in range(rows):
for j in range(cols):
rotated[j][rows - i - 1] = matrix[i][j]
return rotated
```
这里的`matrix`是要旋转的二维数组,`rotated`是旋转后的结果。算法的核心是通过两个嵌套的循环遍历原始矩阵中的每个元素,并将其放置到旋转后位置的新矩阵中。具体来说,新矩阵的行索引是旧矩阵的列索引,新矩阵的列索引是旧矩阵行索引的倒序。这样就完成了90度的旋转。
您可以使用以下示例代码测试该函数:
```python
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
rotated = rotate_90(matrix)
for row in rotated:
print(row)
```
输出结果为:
```
[7, 4, 1]
[8, 5, 2]
[9, 6, 3]
```
希望能帮助到您!如果您有任何其他问题,请随时问我。
相关问题
优化一个二维数组旋转90度的Python代码示例
以下是一个优化后的二维数组旋转90度的Python代码示例:
```python
def rotate(matrix):
n = len(matrix)
for i in range(n//2):
for j in range(i, n-i-1):
temp = matrix[i][j]
matrix[i][j] = matrix[n-j-1][i]
matrix[n-j-1][i] = matrix[n-i-1][n-j-1]
matrix[n-i-1][n-j-1] = matrix[j][n-i-1]
matrix[j][n-i-1] = temp
return matrix
```
这个函数接受一个二维数组作为参数,并返回旋转90度后的数组。它使用了两个嵌套的循环来遍历数组中的元素,并使用一个临时变量来交换元素的位置。这个算法的时间复杂度是 O(n^2),空间复杂度是 O(1)。
相比于常见的解法,这个算法在循环的范围和变量的命名上进行了优化,使代码更加清晰易读。同时,它也具有较高的效率和稳定性,适用于处理大规模的数据。
python让一个二维数组和另外一个大小一样
的二维数组顺时针旋转90度,可以先将原数组进行转置,然后再将每一行反转即可。以下是示例代码:
```python
def rotate(matrix):
# 先进行转置
for i in range(len(matrix)):
for j in range(i, len(matrix[0])):
matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
# 再将每一行反转
for i in range(len(matrix)):
matrix[i] = matrix[i][::-1]
return matrix
```
其中,第一个循环将原数组进行转置,通过交换 matrix[i][j] 和 matrix[j][i] 的值实现。第二个循环将每一行进行反转,通过切片操作 matrix[i][::-1] 实现。最终返回旋转后的数组。
阅读全文