python中把嵌套的列表合并成一个列表方法总结

 更新时间:2022年11月23日 09:01:51   作者:起不好名字就不起了  
python中list这种数据结构很常用到,下面这篇文章主要给大家介绍了关于python中把嵌套的列表合并成一个列表方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

方法一:巧用sum函数

将list列表与一个空列表相加,就能把嵌套列表合并成一个

a=[[1],[2],[3],[4],[5]]
merge=sum(a,[])
print('sum result:',merge)

结果:

sum result: [1, 2, 3, 4, 5]

方法二:使用itertools 模块的链式拼接

itertools.chain()与itertools.chain.from_iterable()函数都可以拼接可迭代对象中的所有元素,将元素串联后创建一个新的迭代器。区别是前者可用于拼接多个嵌套列表,后者拼接单个嵌套列表,示例如下。

使用itertools.chain():

import itertools

a='abc'
b='def'

merge=itertools.chain(a,b)
result = list(merge)

print('itertools.chain result:',result)

结果:

itertools.chain result: ['a', 'b', 'c', 'd', 'e', 'f']

使用itertools.chain.from_iterable():

import itertools

a=[[1],[2],[3],[4],[5]]
merge=itertools.chain.from_iterable(a)
result = list(merge)

print('itertools.chain.from_iterable result:',result)

结果:

itertools.chain.from_iterable result: [1, 2, 3, 4, 5]

方法三:迭代判断条件

遍历list内的每一个元素,如果该元素不是列表或元组就加到生成器里,如果是可迭代对象就继续递归调用,直到把所有子列表都打散,最终返回一个大列表。

def flat(l):
    for k in l:
        if not isinstance(k, (list, tuple)):
            yield k
        else:
            yield from flat(k)
a=[[1],[2],[3],[4],[5]]
print ('flat result:',list(flat(a)))

结果:

flat result: [1, 2, 3, 4, 5]

方法四:简单粗暴的字符串替代

直接把整个list转换成字符串,然后替换掉边框,最后通过eval函数再转回list格式

a=[[1],[2],[3],[4],[5],[['m'],['n']]]
result = eval('[%s]'%repr(a).replace('[', '').replace(']', ''))
print('eval result:',result)

结果:

eval result: [1, 2, 3, 4, 5, 'm', 'n']

附加一道有意思的面试题

list_info = [1,2,3,4,5]
print(list_info[10:])

会输出什么?为什么?

1)导致 IndexError

2)输出[1,2,3,4,5]

3)编译错误

4)输出[]

总结 

到此这篇关于python中把嵌套的列表合并成一个列表方法的文章就介绍到这了,更多相关python嵌套列表合并一个列表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python pycharm 同时加载多个项目的方法

    Python pycharm 同时加载多个项目的方法

    今天小编就为大家分享一篇Python pycharm 同时加载多个项目的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python urllib2运行过程原理解析

    Python urllib2运行过程原理解析

    这篇文章主要介绍了Python urllib2运行过程原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Python中Flask-RESTful编写API接口(小白入门)

    Python中Flask-RESTful编写API接口(小白入门)

    这篇文章主要介绍了Python中Flask-RESTful编写API接口(小白入门),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 使用pyinstaller打包django的方法实现

    使用pyinstaller打包django的方法实现

    本文主要介绍了使用pyinstaller打包django的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 解决Pytorch半精度浮点型网络训练的问题

    解决Pytorch半精度浮点型网络训练的问题

    这篇文章主要介绍了解决Pytorch半精度浮点型网络训练的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python中针对函数处理的特殊方法

    Python中针对函数处理的特殊方法

    Python内置了一些非常有趣但非常有用的函数,充分体现了Python的语言魅力
    2014-03-03
  • python3两数相加的实现示例

    python3两数相加的实现示例

    这篇文章主要介绍了python3两数相加的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 小米5s微信跳一跳小程序python源码

    小米5s微信跳一跳小程序python源码

    这篇文章主要为大家详细介绍了小米5s微信跳一跳小程序python源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 人工智能学习Pytorch张量数据类型示例详解

    人工智能学习Pytorch张量数据类型示例详解

    这篇文章主要为大家介绍了人工智能学习Pytorch张量数据类型的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • python 多线程threading程序详情

    python 多线程threading程序详情

    这篇文章主要介绍了python 多线程threading程序详情,Thread类表示在单独的控制线程中运行的活动,下文相关资料需要的小伙伴可以参考一下
    2022-04-04

最新评论