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
投稿
猜你喜欢
- 1、远程服务器上安装jupyter notebook(配置jupyter_notebook_config.py文件)sudo pip ins
- 前言我们在上一期学习了关于Python 迭代器Iterator详情相关的概念,满足迭代器需要符合两个条件实现__iter__()方
- python去除文件中重复的行,我们可以设置一个一个空list,res_list,用来加入没有出现过的字符行!如果出现在res_list,我
- mysql-connector-java与mysql版本的对应我们知道版本更新经常带来的问题就是兼容性问题。在编程过程中版本的错误选择很可能
- 程式功能: 用 UI 界面,点击界面上的“开始识别”来录音(调用百度云语音接口),并自动将结果显示在
- 此文刊登在《程序员》三月期,有删改提到安全问题,首先想到应付这些问题的应该是系统管理员以及后台开发工程师们,而前端开发工程师似乎离这些问题很
- 前言最近我在公司优化过几个慢查询接口的性能,总结了一些心得体会拿出来跟大家一起分享一下,希望对你会有所帮助。我们使用的数据库是Mysql8,
- 效果图如下:图1(头像图片剪成圆形的,其他为透明)图2(给图片的4个角加椭圆)以前没处理过,处理起来真是有点费力呀。用到的模块:import
- 代码很简洁,功能很实用,这里就不多废话了,直接给大家奉上代码:/** * Created by Administrator on 15-1-
- 1. 前沿移动均线是股票最进本的指标,本文采用numpy.convolve计算股票的移动均线2. numpy.convolvenumpy.c
- 一、简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性。
- 本文实例讲述了python计算一个序列的平均值的方法。分享给大家供大家参考。具体如下:def average(seq, total=0.0)
- 今日一同时问我,new Date(Date(str))这段代码什么意思?我一看就晕了,一个new Date 一个Date这是什么意思?这函数
- Seaborn - 绘制多标签的混淆矩阵、召回、精准、F1导入seaborn\matplotlib\scipy\sklearn等包:impo
- 本文实例讲述了Python中顺序表原理与实现方法。分享给大家供大家参考,具体如下:Python中的顺序表Python中的list和tuple
- linspace生成有序列表,重点在数据范围与数据个数上linspace(0,1,11),即从0到1闭区间,划分为11个数据点>>
- 一, 创建用户: 命令:CREATE USER 'usern
- 什么是异常?异常是一个事件,其中一个程序,破坏程序的指令的正常流的执行过程中而发生的。一般情况下,当一个Python脚本遇到一些情况不能处理
- 下午有个朋友问json 数据怎么分页 就捣鼓了一个东东出来下面直接代码:<!DOCTYPE html PUBLIC "-//
- 多行正则表达式是对象的只读布尔属性。它指定是否一个特定的正则表达式进行多行匹配,即,不管是否使用“m”属性创建。语法RegExp