封装一个函数,传入一个数组和两个的坐标(验证坐标必须是传入数组的范围),交换两项数据的位置。
74浏览 · 2024-05-06 17:15:16
可以使用以下[代码](https://geek.csdn.net/educolumn/1572ef9b473b4e00f6b2bf6d428b7c27?spm=1055.2569.3001.10083)实现该[函数](https://geek.csdn.net/educolumn/ba94496e6cfa8630df5d047358ad9719?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083):
```python
def swap_items(arr, idx1, idx2):
交换数组中两个位置的数据项
:param arr: 数组
:param idx1: 第一个数据项的[索引](https://geek.csdn.net/educolumn/1b7b4ecdd00b3a98e3772a91924cbd81?spm=1055.2569.3001.10083)
:param idx2: 第二个数据项的[索引](https://geek.csdn.net/educolumn/1b7b4ecdd00b3a98e3772a91924cbd81?spm=1055.2569.3001.10083)
:return: 交换后的数组
# [验证](https://geek.csdn.net/educolumn/0330ae9ce73d0920177833b396480304?spm=1055.2569.3001.10083)坐标是否在数组范围内
if idx1 < 0 or idx1 >= len(arr) or idx2 < 0 or idx2 >= len(arr):
raise ValueError("坐标不在数组范围内")
# 交换数据项
arr[idx1], arr[idx2] = arr[idx2], arr[idx1]
return arr
使用示例:
```python
arr = [1, 2, 3, 4, 5]
print(swap_items(arr, 1, 3)) # [1, 4, 3, 2, 5]
```
相关问题
以下是一个实现交换数组中两个位置的函数:
```js
function swapArrayItems(arr, index1, index2) {
// 验证坐标是否在数组范围内
if (index1 < 0 || index1 >= arr.length || index2 < 0 || index2 >= arr.length) {
throw new Error('Index out of range');
// 交换两个位置的数据
const temp = arr[index1];
arr[index1] = arr[index2];
arr[index2] = temp;
return arr;
```