python 多层嵌套列表 转成一维列表

如以下的嵌套列表:

[1,[2,3],[4,[5,6]]]

因为不知道嵌套了多少层,常规的方式是写一个递归函数,对这个函数进行递归来生成一维列表。

后来发现,在python的compiler模块中,提供了类似功能的函数:

>>> from compiler.ast import flatten
>>> flatten(a)
[1, 2, 3, 4, 5, 6]

这样子就简单多了

### 如何在 Python 中拆分多层嵌套列表 对于处理复杂的嵌套列表,可以采用递归函数来遍历并提取最内层的元素。下面是一个具体的实现方法: ```python def flatten_list(nested_list, result=None): """ 将一个多维列表转换成一维列表。 参数: nested_list (list): 需要被展平的原始列表。 result (list): 存储最终结果的一维列表,默认为空列表。 返回: list: 展平后的列表。 """ if result is None: result = [] for element in nested_list: if isinstance(element, list): flatten_list(element, result) else: result.append(element) return result ``` 此段代码定义了一个名为 `flatten_list` 的函数用于将任意维度的列表转化为单一层次的列表[^3]。当传入参数为多级嵌套形式时,该算法能够有效地解析每一层结构直至获取到所有的基本数值项,并将其按顺序加入新的线性序列之中。 为了验证上述功能的有效性,这里给出几个测试案例及其预期的结果: #### 测试用例 1 输入:`[[[1,2], [3]], [4]]` 输出:`[1, 2, 3, 4]` 执行如下命令可得到期望输出: ```python test_case_1 = [[[1, 2], [3]], [4]] print(flatten_list(test_case_1)) ``` #### 测试用例 2 输入:`[[1,[2,3],[4,[5,6]]],7]` 输出:`[1, 2, 3, 4, 5, 6, 7]` 同样地,可以通过运行以下语句来进行检验: ```python test_case_2 = [[1, [2, 3], [4, [5, 6]]], 7] print(flatten_list(test_case_2)) ``` 这种方法不仅适用于简单的二维数组情况,也支持更深层次甚至不规则形状的数据集,在实际编程场景中有较高的实用性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值