python 中tolist()源码
时间: 2024-02-17 08:04:04 浏览: 76
在Python中,`tolist()`方法通常是用于将数组或列表转换为Python列表的方法。下面是一个简单的示例代码:
```python
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
lst = arr.tolist()
print(lst)
```
输出结果为:
```
[1, 2, 3, 4, 5]
```
下面是`tolist()`方法的源码实现:
```python
def tolist(self):
"""Return the array as a (possibly nested) list."""
return array_to_list(self)
```
其中,`array_to_list()`是一个递归函数,用于将数组转换为列表。它的实现方式如下:
```python
def array_to_list(arr):
"""Recursively convert arrays (possibly nested) of self.dtype to lists."""
if not isinstance(arr, np.ndarray):
return arr.tolist()
if arr.ndim == 0:
return arr.item()
return [array_to_list(x) for x in arr]
```
这个函数首先检查输入是否为`numpy`数组,如果不是,则直接返回列表。如果输入是`numpy`数组,则递归地将数组转换为列表,直到所有元素都转换为列表为止。
阅读全文