python合并列表中的元素_python 列表中子列表合并

本文介绍了如何使用Python的reduce()函数和列表推导式合并列表,分别处理不同类型的lista。第一种情况是将嵌套列表合并为一维,第二种是将所有元素转为list并合并。知识点包括列表操作和functools.reduce的用法。
摘要由CSDN通过智能技术生成

fe855eba8a667de0c96c8757341eff65.png

需求1: 原始列表为 lista = [ [1], [2, 3], 4, [5, 6],[7] ], 需要使用一个表达式合并成为 [1, 2, 3, 4, 5, 6, 7]

from functools import reduce
lista = [[1], [2, 3],[4], [5,6], [7]]
result = reduce(lambda x, y: x.extend(y) or x, lista)
print(result)

在python3中,reduce() 不再是内置函数,需要从functools中导出

需求2:原始列表为 lista = [ 1, [2, 3], 4, [5, 6], 7 ], 需要使用一个表达式合并成为 [1, 2, 3, 4, 5, 6, 7]

lista = [1, [2, 3], 4, [5, 6], 7]
result = reduce(lambda x, y: x.extend(y) or x, [ i if isinstance(i, list) else [i] for i in lista])
print(result)

在上述代码中, [ i if isinstance(i, list) else [i] for i in lista] 代码片段是将 lista 中元素全部转化为 list 类型便于后续处理

知识点学习:

reduce()

lambda: 待补充

参考文献:http://zhaojunde1976.blog.163.com/blog/static/121998668201062473318815/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值