python 如何传递数组
时间: 2024-08-13 18:01:48 浏览: 47
在 Python 中,你可以通过多种方式来传递数组(列表、元组、numpy 数组等)。以下是常见的几种方法:
1. **直接传递** - 如果数组是内置的数据结构(如 list 或 tuple),可以直接作为函数参数传递。
```python
def process_array(arr):
# 这里可以对 arr 进行操作
print(arr)
my_list = [1, 2, 3]
process_array(my_list)
```
2. **复制传递** - 如果你想避免修改原数组,可以复制一份再传递:
```python
def process_array_copy(arr_copy):
# 对 arr_copy 操作不会影响原始数据
arr_copy.append(4)
print(arr_copy)
arr = [1, 2, 3]
process_array_copy(arr.copy())
print(arr) # 输出还是原来的 [1, 2, 3]
```
3. **引用传递** - 如果传递的是可变容器(如 list),Python 实际上是按引用传递的,所以改变列表的内容会反映到原始列表。如果你不想让外部看到改变,需确保只读访问:
```python
def process_array_ref(arr):
arr.append(4) # 这将修改原数组
arr = [1, 2, 3]
process_array_ref(arr)
print(arr) # 输出 [1, 2, 3, 4]
```
4. **numpy 数组** - numpy 数组(ndarray)是一种特殊的数组类型,传递时也是按引用,但如果需要传递副本,可以使用 `.copy()` 函数:
```python
import numpy as np
def process_numpy_array(arr_copy):
arr_copy = arr_copy.copy() # 创建数组的副本
arr_copy = 5
print(arr_copy)
arr = np.array([1, 2, 3])
process_numpy_array(arr)
print(arr) # 输出仍为 [1, 2, 3]
```
阅读全文