将一个数组的数组元素按逆序重新存放。例如,原来存放顺序为8,6,5,4,1,要求改 1,4,5,6,8(要求采用3种方法实现)。
时间: 2024-12-13 15:25:08 浏览: 41
将一个二维数组的元素按逆序重新存放可以有多种方法实现,这里提供三种常见的方法:
**方法一:使用双重循环**
```python
def reverse_2d_array(arr):
rows = len(arr)
cols = len(arr[0])
for i in range(rows // 2): # 从头到中间行
for j in range(cols): # 对每列进行操作
temp = arr[i][j]
arr[i][j] = arr[rows - i - 1][j] # 交换当前元素和对角线元素
arr[rows - i - 1][j] = temp
# 示例
arr = [[8], [6], [5], [4], [1]]
reverse_2d_array(arr)
print(arr) # 输出: [[1], [4], [5], [6], [8]]
```
**方法二:列表推导式**
```python
def reverse_2d_array_with_list_comprehension(arr):
return [row[::-1] for row in arr[::-1]]
# 示例
arr = [[8], [6], [5], [4], [1]]
reversed_arr = reverse_2d_array_with_list_comprehension(arr)
print(reversed_arr) # 输出: [[1], [4], [5], [6], [8]]
```
**方法三:numpy数组操作**
如果你使用的是NumPy库,可以直接使用`flipud()`函数来翻转数组:
```python
import numpy as np
def reverse_2d_array_numpy(arr):
return np.flipud(np.array(arr))
# 示例
arr = [[8], [6], [5], [4], [1]]
reversed_arr = reverse_2d_array_numpy(arr)
print(reversed_arr.tolist()) # 输出: [[1], [4], [5], [6], [8]]
```
阅读全文
相关推荐


















