python将多维列表降维
时间: 2023-09-02 07:09:41 浏览: 167
Python库 | kmeans1d-0.2.0-cp36-cp36m-win_amd64.whl
5星 · 资源好评率100%
将多维列表降维可以使用Python中的列表推导式(list comprehension)或者使用numpy库中的`flatten()`方法。下面分别介绍两种方法的实现。
1. 使用列表推导式
可以使用递归的方式来展开所有嵌套的子列表,然后使用列表推导式将其转换为一维列表。示例如下:
```python
def flatten(lst):
"""
将n维列表展开为一维列表
"""
new_lst = []
for i in lst:
if isinstance(i, list):
new_lst.extend(flatten(i))
else:
new_lst.append(i)
return new_lst
nested_list = [[1, 2], [3, [4, 5]], 6]
flat_list = [x for x in flatten(nested_list)]
print(flat_list) # [1, 2, 3, 4, 5, 6]
```
2. 使用numpy库中的`flatten()`方法
可以使用numpy库中的`flatten()`方法将多维列表降维为一维列表。示例如下:
```python
import numpy as np
nested_list = [[1, 2], [3, [4, 5]], 6]
flat_list = np.array(nested_list).flatten().tolist()
print(flat_list) # [1, 2, 3, 4, 5, 6]
```
注意:使用numpy库中的`flatten()`方法只适用于处理数组,如果需要处理其他类型的嵌套列表,需要先将其转换为数组。
阅读全文