python中把嵌套的列表合并成一个列表方法总结
作者:起不好名字就不起了 发布时间:2022-06-07 04:11:22
标签: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)输出[]
总结
来源:https://blog.csdn.net/qq_38017966/article/details/119272263
0
投稿
猜你喜欢
- 对于软件来说,每一个新版本的推出都应该是一种进步,不可否认,阿里旺旺2008版相较于之前的版本的确是有很多的进步,但进步的同时却也有着比之前
- 字典的键 字典中的值没有任何限制, 可以是任意Python对象,即从
- 1.建表代码如下:-- Create table create table test ( dm1 char(3), dm2 char(3),
- 目录1. 加载保存好的模型2. 使用flask起服务3. 发送请求并得到结果4. 效果呈现1. 加载保存好的模型为了方便起见,这里我们就使用
- 该爬虫应用了创建文件夹的功能:#file settingfolder_path = "D:/spider_things/2016.
- 在python命令行模式下,在IDLE中输入多行,例如if else使用tab的方式,控制缩进在最后,连续两个回车,表示结束&g
- Python# coding=utf-8import timeimport sysdef func(): # 格式化输出时间 &
- 这篇文章主要介绍了python函数不定长参数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 常用字段类型bit(0和1),datetime,int,varchar,nvarchar(可能含有中文用nvarchar) Varchar,
- 用python3.x实现base64加密和解密,供大家参考,具体内容如下加密base64_encrypt.py#!/usr/bin/pyth
- 在使用easyUI做前端样式展示时,遇到了文件上传的问题,而且是在弹出层中提交表单,想做到不刷新页面,所以选择了使用ajaxFileUplo
- 本文实例分析了Python中的对象,方法,类,实例,函数用法。分享给大家供大家参考。具体分析如下:Python是一个完全面向对象的语言。不仅
- 1、jsp前端<%-- Created by IntelliJ IDEA. User: Lenovo Date: 2020/6/19
- python命名规则命名风格python几种不同命名风格驼峰式命名法(WjW)混合式命名法(wjWj)大写(WJWJWJ)或大写加下划线(W
- 一、项目需求爬取排行榜小说的作者,书名,分类以及完结或连载二、项目分析目标url:“https://www.qidian.com/rank/
- 例如:我们在百度中搜索 词典网,则网址后面的参数就是http://www.baidu.com/s?cl=3&wd=%B4%CA%B5
- 本文实例讲述了Python3实现从文件中读取指定行的方法。分享给大家供大家参考。具体实现方法如下:# Python的标准库linecache
- 在推广Web标准的今天,那些崇尚Web标准的人经常说XHTML比HTML更加严格,当然从某种意义上说是的,比如它要求所有的标签关闭并且所有的
- 本文使用的是163邮件进行测试。注:163邮箱现在需要使用 客户端授权码 进行测试,不再支持邮箱密码进行测试。 
- 本文实例讲述了python动态参数用法。分享给大家供大家参考。具体分析如下:先来看一段代码:class Person: &nb