洗礼灵魂,修炼python(15)--列表进阶话题—>列表解析/列表生成器

OAK-D-Pro深度解析:从硬件融合到全天候SLAM实战 本文深度解析OAK-D-Pro硬件架构及其在SLAM领域的实战应用。作为SLAM的"六边形战士",OAK-D-Pro融合主动双目摄像头、结构光投射器、6轴IMU等传感器,实现全天候稳定工作。通过实测数据展示其在弱纹理环境、动态光照等复杂场景下的卓越表现,并提供SLAM实战技巧与开发指南,帮助开发者快速部署高效SLAM解决方案。 阅读详情

是的,我是想到什么知识点就说什么,没有固定的主题,我的标题都是在写完博客再给的。本篇博文说说列表进阶话题。其实列表应该是比较熟悉的了,而毫不夸张的说,在实际的开发中,列表也是使用的最多的,以后你会体会到我说的这句话的。

列表解析

1.什么是列表解析:

根据已有列表,高效生成新列表的方式,还有另一个叫法是叫列表推导式

2.作用:

列表解析是python迭代机制的一种应用,它常用于实现创建新的列表,因此要放置在列表中

3.格式:

[expr for iter in iterable]

4.实际运用:

例题:返回1到10的所有数的平方:

注意:我使用的的是python2,如果你是用的是python3,需要加括号的,还有,列表解析是用的使用中括号,不是小括号

是不是很简单的就生成了我们想要的结果?

这里用到一个内置函数range(),前面提到没有我也忘了(是的,我也有任性的时候/滑稽),在这里详细讲解一下:

range([start,]  stop[,step=1]):中括号表示这两参数可选,Step=1表示第三个参数的值默认值是1

range这bif(内置函数)的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列

例:

 

由这个例子得到一个知识点,注意:range函数,第二个参数不包括其中,默认从0开始(是不是有点像索引)

也可以和切片一样添加步长来返回:

好,我想你已经对列表解析有个大概了解了,再看一个列子:

返回1到10的所有偶数:

注意:列表解析,整个过程中,每一小段代码不用冒号或者逗号隔开,直接是空格隔开

 

再看几个综合练习题:

 

1).用列表解析生成100内的大于20的偶数(请用两种写法)

 

 

2).用列表解析生成100内的大于20的偶数的平方

 

 

3).用列表解析输出结果:[1 love python,2 love python,3 love python,.... 10 love python]

 

 

 4).用列表解析的方法返回某一磁盘路径下相同后缀名文件组成的列表

这里使用了os模块和字符串的endswith方法,os模块后面会解析

好,列表解析完了,其实很简单对不对?

 

列表生成器

 1.什么是列表生成器:

概念和列表解析差不多,根据已有列表,以生成器的方式生成一个列表。生成器是迭代器的一种实现

2.作用:

返回一个生成器对象,并不真正创建列表

3.格式:

(expr for iter in iterable)

4.实际运用:

例题:返回1到10的所有数的平方:

是的,我想你应该看出列表生成器和列表解析的不同了

注意:

1.列表生成器使用的是小括号,列表解析是用的是中括号哦

2.列表生成器不能直接输出,换句话生成器对象不能直接输出

3.如果要输出,则必须使用生成器对象的next()方法一一返回

4.当生成器对象返回完则会报错

 

 说到列表生成器,那不得不提到生成器关键词—yield

yield:是为在函数内使用的生成器语法,一旦程序里有yield,则被定义为生成器

 例:

这里使用了自定义函数的语法,姑且不管,后面会详解。因为知识都是相连的,所以避免不了穿插后面的知识。

发现没?使用yield关键词就会把函数变为一个生成器对象

 

其实说道生成器和列表解析,就和range()函数与xrange()函数一样

range()函数前面说了,不再解释。xrange每次返回一个数值,和range不同

 例:

 

 

综合实例:

有没有发现,哎,这啥情况对吧?怎么next方法不顶用了,老师返回1啊,其实不是,是因为:

列表生成器一次知返回一个值,由于不能多次调用生成器,一位内每调用一次,内存ID就会变化一次,所以,一般赋值给另一变量来进行一一返回

列表解析和列表生成器综合使用

1.列表解析功能强大,但很占用资源,列表生成器只返回一个值,但占用小,所以酌情选择

2.例:用生成器和解析结合实现1到10的平方数除以2的结果:

注意:在这里外层和内层的i的引用,其实并不冲突的,但尽量少用,有些地方是有冲突的

3.生成器也可以转换为列表:

4.例

好,列表进阶话题完结,留下几个课后练习自己练习

课后作业:

1.使用列表解析输出结果:[(0,0),(0,2),(2,0),(2,2)]

2.使用列表生成器打印斐波那契数列

3.使用列表解析生成列表[1x2,3x4,5x6,7x8,…,99x100]

4.利用3层for循环的列表生成式,找出对称的3位数,例如:121等从左到右从又到左还是原来的对称数

5.编写一个函数,它接受一个list,然后把list中的所有字符串变成大写后返回,非字符串元素将被忽略

 

cesium vue2/vue3教程目录导航 以下是本专栏目录导航,送完整项目源码(拒绝单页源码),可以直接运行,全部配置免费视频教程(B站)。 阅读详情

相关推荐

【达梦8】多实例监视集群的部署测试

确认监视器具有状态确认和自动接管两个功能。在数据守护系统的故障自动切换模式下,必须部署一个确认监视器,否则在出现数据库故障时,会导致数据库服务中断。DM 提供了两种确认监视器的配置形式,分别为单实例和多实例。但是当单实例确认监视器故障时,无法继续进行集群的故障自动接管和备库故障确认,影响正常使用,故提供了多实例确认监控器来进一步提高集群的高可用性。在多实例确认监视器中,只有一个实例作为确认监视器提供服务,其它实例作为备库存在而不提供服务。

weixin_45335507的博客 1675

python经典有序序列的list列表推导式实践运用

辅助视频教程:Python基础教程|xin3721自学网ul li id=itemtitlePython3 从入门到精通视频教程/li /ul ul li class=description Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),https://www.xin3721.com/eschool/pythonxin3721/ 生成一个数据列表 # 初始化一个列表 list_1 = [] # 使用循环生成一个列表数据 for

chinaherolts2008的博客 572

GIS常用坐标系简介

EPSG:4326是基于WGS 84的地理坐标系,使用经纬度表示,适用于全局定位和地理数据表示。它的缺点是在进行距离、面积计算等地理分析时不够准确。EPSG:3857是投影坐标系,使用平面米坐标表示,适用于在线地图展示,特别适合 Web 地图应用。虽然它在地图展示中很高效,但由于投影引起的变形问题,它不适合高精度地理测量和计算。

weixin_59096287的博客 1976

Python使用解析的方法创建一个列表,列表里是1到100之内的所有偶数

【代码】Python使用解析的方法创建一个列表,列表里是1到100之内的所有偶数。

qq_40803019的博客 2237

ESP32脑机接口开发板:EEG信号采集与应用开发指南

脑机接口(BCI)技术通过采集脑电图(EEG)信号实现人机交互,其核心在于高精度生物电信号采集与实时处理。基于ESP32微控制器的开发平台结合专业级ADS1299 ADC芯片,可构建8通道EEG信号采集系统,支持250SPS采样率与可编程增益。这种嵌入式解决方案在科研教育领域具有显著优势,既能满足信号质量要求,又大幅降低开发门槛。典型应用包括实时脑电波可视化、注意力检测等BCI场景,通过Python生态工具链(如BrainFlow、LSL)可快速实现数据处理。开发时需注意电极阻抗控制(<10kΩ)和50/6

weixin_42518874的博客 343

AutoSAR系列讲解 - 前言

博主xyfx是一名汽车行业的嵌入式软件工程师,本职工作是同步电机的驱动控制(主要做FOC的,这个大家要是有兴趣,以后可以单独开一个专栏来讲解一下),由于做控制器的时候需要用到AutoSAR,所以特意的去学习了相关知识,同时博主自己也在同步提高中,有写的不合理的地方也请大家指正。我准备对AutoSAR开设两个大的方面来讲解,一是AutoSAR的入门篇,二是AutoSAR的实践篇,分别讲述AutoSAR的理论基础和工具的使用。

雪云飞星的博客 4万+

Python 例题

提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

zhoutong2323的博客 852

手把手教你如何在应用宝的Android模拟器安装第三方应用方法

通过上述步骤,你就能在腾讯应用宝模拟器中安装并运行本地的第三方APK应用了。虽然稍显繁琐,但操作起来并不复杂,只要按照步骤一步步做,就能顺利完成。希望这篇文章能帮助到遇到类似问题的你!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 7209

Python 列表解析与生成器表达式

Python 的强大特性之一是其对 list 的解析,它提供一种紧凑的方法,可以通过对 list 中的每个元素应用一个函数,从而将一个 list 映射为另一个 list。 列表解析,又叫列表推导式( List comprehension) 列表解析比 for 更精简,运行更快,特别是对于较大的数据集合 列表解析可以替代绝大多数需要用到 map和 filter的场合 列表解析式是将一个可迭代对象(如列表)转换成另一个列表的工具。在转换过程中,可以指定元素必须符合某一条件,并按照指定的表达式进行转换,才能添加至

hs6605015的博客 1697

Qt基础之十九:进程与QProcess

进程就是一个程序的执行实例,也就是正在运行的程序。对操作系统来说,进程就是一个担当分配系统资源CPU时间、内存的实体。在Qt 中,我们使用QProcess来表示一个进程。这个类可以允许我们的应用程序启动一个新的外部程序,并且与这个程序进行通讯。当外部程序开始启动时,QProcess的状态为Starting;外部程序已经启动时,QProcess的状态为Running,并发送started()信号;当外部层序退出了,QProcess的状态为NotRunning(初始状态),并发送finished()信号。

草上爬的博客 1万+

GibbsCAM软件二次开发:GibbsCAM软件API接口详解

API(Application Programming Interface,应用程序编程接口)是一种允许不同软件之间进行通信的接口。在GibbsCAM软件中,API提供了与外部程序交互的能力,使得开发者可以利用GibbsCAM的强大功能进行二次开发,定制化满足特定的制造需求。GibbsCAM的API主要基于.NET框架,使用C#或VB.NET等语言进行编程。在GibbsCAM软件中,通过API接口创建自定义几何形状是实现复杂零件设计和加工策略定制的关键步骤。

kkchenjj的博客 1497

python列表生成器二维筛选_python 列表生成器

python 列表生成器列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。一个循环在C语言等其他语言中,for循环一般是这样的如果python也这么写,那么真该看下python的基础教程了~但要注意的是,需要加一个[]来,否则会报错...在上面的例子中,不仅可以嵌套for,甚至可以嵌套if语句再看看,原来是什么样子两个循环呢?原来...

weixin_39637924的博客 365

软考备考:《系统规划与管理师教程》(第2版)第2章——数字ZG与数智化发展

🔴数字化转型的定义:数字化转型是建立在数字化转换、数字化升级基础上,进一步触及组织核心业务,以新建一种业务模式为目标的高层次转型。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 960

python 初学4:Python 列表生成式

列表生成式是 Python 内置的非常简单却强大的可以用来创建 list 的生成式。 -list 生成式简单、不繁琐 -可以使用一行代码代替一个 for 循环 举个栗子: 1、生成 [1,2,3,4…100] 的列表 原始的方法是是使用循环加 rang() 函数生成,如下所示: for i in list(range(1, 101)): print(i) 如果要输出 1-100 之间的偶...

坚强的小土豆 1047

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

牛客python题库解题笔记——5小时学python(3)

抽奖游戏,定义一个幸运数字(整数),所有人都有无限制次机会可以去猜幸运数字,直到有人猜中为止。写一个程序,输入多个数字,依次检验是否为幸运数字,若是则输“Congratulations!第一份名单的前三个名字和第二份名单的后三个名字组合成“被选中的人”,并将“被选中的人”组成成新元组。数列表中的数字,遇到数字3就跳过,遇到数字8就停下来不再继续数,最后输出数了哪些数字。使用列表解析的方法生成n个从2开始的偶数,并输出生成的列表。输入序列并将其创建为列表,再遍历列表输出,遍历步长为5。每行单独输出一个姓名。

Turbo学习笔记 477

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Python基础入门-列表解析式

今天我们使用Python中的列表解析式来实现一些简单功能。好了关于列表解析式是什么?我的理解是它可以根据已有列表,高效创建新列表的方式。列表解析是Python迭代机制的一种应用,它常用于实现创建新的列表,返回的是一个列表,因此用在[]中。好了,下面我们通过一些实际的例子来看一下列表解析式的使用: 生成1*1,2*2,3*3,4*4,5*5,6*6,9*9的序列 使用for循环的实现方法:...

weixin_30457465的博客 284

Python操作列表

Python Day 3 2020-4-8 Python操作列表 遍历整个列表 1.名单很长,将包含大量重复的代码。另外,每当名单的长度发生变化时,都必须修改代码。通过使用for循环,可让Python去处理这些问题。 magicians = ['alice', 'david', 'carolina'] for magician in magicians: print(magician) 2...

dongxuenaa的博客 704

python中如何计算列表中的元素数量_零基础学python_10_列表(创建数值列表 )

创建数值列表需要存储一组数字的原因有很多,例如,在游戏中,需要跟踪每个角色的位置,还可能需要跟踪玩家的几个最高得分。在数据可视化中,处理的几乎都是由数字(如温度、距离、人口数量、经度和纬度等)组成的集合。列表非常适合用于存储数字集合,而Python提供了很多工具,可帮助你高效地处理数字列表。明白如何有效地使用这些工具后,即便列表包含数百万个元素,你编写的代码也能运行得很好。1.使用函数range(...

weixin_39761481的博客 2109

列表解析python_python列表解析式

列表解析——用来动态地创建列表[expr for iter_var in iterable if cond_expr]生成1-100以内的偶数a3 = [x for x in range(1,101) if x % 2==0]print (a3)输出结果:[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38,...

weixin_39969006的博客 348

python输出偶数_Python习题册028:输出列表中的偶数

任务028描述用Python编写一个程序,要求输入一个列表,可以将其中所有的偶数打印出来,偶数的排列顺序与其在原始列表中的出现顺序一致。示例用的列表元素如下:numbers = [386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345,399, 162, 758, 219, 918, 237, 41...

weixin_39525243的博客 6948

《Python编程:从入门到实践》第4章 操作列表

《Python编程:从入门到实践》第4章 操作列表 主要内容及主要习题

weixin_63664072的博客 4242

python列表解析式集合解析式_【python】列表解析式和生成器

转自:https://www.cnblogs.com/rivendare/p/9493698.html列表解析式可以根据已有列表,高效创建新列表的方式。列表解析是Python迭代机制的一种应用,它常用于实现创建新的列表,返回的是一个列表,因此用在[]中。列表解析式因编译器进行优化,提高了效率,减少出错,增加可读性语法[ 返回值 for 元素 in 可迭代对象 if条件 ]使用中括号[ ],内部是...

weixin_31109967的博客 619

python列表推倒式,生成器,迭代器,

1、 列表推导式 列表推导能非常简洁的构造一个新列表:只用一条简洁的表达式即可对得到的元素进行转换变形。 1.1格式 [表达式 for 变量 in 列表]    或者  [表达式 for 变量 in 列表 if 条件] 过滤条件可有可无,取决于实际应用,只留下表达式;相当于下面这段for循环: 复制代码代码如下: result = []   for value in collection...

weixin_43706536的博客 600

《Python编程 从入门到实践》 一、基础知识 第四章 操作列表

4.1遍历整个列表 你经常需要遍历列表中的所有元素,对每个元素执行相同的操作。例如,在游戏中,可能需要将每个界面元素平移相同的距离;对于包含数字的列表,可能需要对每个元素执行相同的统计运算;在网站中,可能需要显示文章列表中的每个标题。需要对列表中的每个元素都执行相同的操作时,可使用Python中的for循环。 假设我们有一个魔术师名单,需要将其中每个魔术师的名字都打印出来。为此,我们可以分别获取名单中的每个名字,但这种做法会导致多个问题。例如,如果名单很长,将包含大量重复的代码。另外,每当名单的长度发生

cxrpty的博客 824

【python】——列表推导式

python——列表推导式

LoveforPython_xh的博客 420

python小练习9(这些简单的题目你都会吗)

基本数据类型:1: info = ‘abc’info[2] = ‘d’结果是什么,为什么会报错呢?答: TypeError: ‘str’ object does not support item assignment字符串是不可变数据类型2: 如果要把上面的字符串info里面的c替换成d,要怎么操作呢?答: (1). 转换为 listinfo = 'abc'a = list(info)a[2] =

MTbaby的博客 1万+

Python基本数据类型练习题

1.一.已经字符串 s = "i,am,lilei",请用两种办法取出之间的“am”字符。s = "my,name,is,zhangsan" print (s[3:7]) #方法一 c = s.split(',')[1] #方法二 print (c)二.在python中,如何修改字符串?答案:可以用字符串的replace方法.a = 'my name is lisi' a = a.rep...

陌子曦的专栏 9630
上一篇: 洗礼灵魂,修炼python(14)--模块decimal, fractions,operator,collections以及精度介绍
下一篇: 洗礼灵魂,修炼python(16)--列表进阶话题—>上节作业讲解+copy模块,浅拷贝,深拷贝
geekbyte.
博客等级 码龄11年 308粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值