【7.0】列表字典推导式
【一】语法
-
列表推导式可以利用列表,元组,字典,集合等数据类型,快速的生成一个特定需要的列表。
-
语法格式如下
【二】列表推导式
【1】为什么要用列表推导式?
- 列表推导式为我们提供了一种从序列创建列表的简单途径,它书写简单,执行效率比循环高。
- 下面我们通过代码直观的感受一下列表推导式的魅力。
(1)直接从序列中构建列表
(2)使用列表推导式
【2】列表推导式的应用
(1)新生成列表的每个元素都可以是任意的表达式或对象
(2)让每个元素执行相同的操作
(3)加入嵌套循环
(4)实现行列转换
(5)加入判断条件,组成过滤器
- 从一个给定的列表中选出偶数组成一个新的列表
- filter是Python中的一个内嵌函数,它有两个参数,
- 其中第一个参数是一个函数
- 第二个参数是一个迭代器
- 返回值是布尔类型
- 它的作用是将迭代器中的每一个元素都用第一个函数进行判断
- 为真则保留
- 反之则去除
- 从而也形成了过滤的作用。
- 如果此处对lambda表达式有疑惑,不妨可以看看有关函数中对lambda表达式的介绍。
(6)判断列表中有几个对称数
【2】列表生成式
- 只需要将列表推导式中的中括号改成小括号就变成了生成式。
(1)与推导式的区别
- 列表推导式一次性返回所有的元素,生成式每次只会返回一个元素
- 当生成的元素数量非常多时,生成式占用的空间非常小,而推导式则会占用大量的空间
- 推导式的执行效率高,所以推荐在数据量小的时候使用
(2)示例
-
从以上代码我们可以看出生成式的直接返回结果时一个生成器。
-
素数判断
【3】字典推导式
- 有了列表推导式的概念,字典推导式学起来就非常简单了,语法格式如下:
- 案例
- 最常见的哪里还是下述的代码,遍历一个具有键值关系的可迭代对象。
【4】元祖推导式和集合推导式
- 其实你应该能猜到,在 Python 中是具备这两种推导式的,而且语法相信你已经掌握了。不过语法虽然差不多
- 但是元组推导式运行结果却不同,具体如下。
-
使用元组推导式生成的结果并不是一个元组,而是一个生成器对象,需要特别注意下
-
这种写法在有的地方会把它叫做生成器语法,不叫做元组推导式。
-
集合推导式也有一个需要注意的地方,先看代码:
- 因为集合是无序且不重复的,所以会自动去掉重复的元素,并且每次运行显示的顺序不一样,使用的时候很容易晕掉。
__EOF__

本文作者:Chimengmeng
本文链接:https://www.cnblogs.com/dream-ze/p/17877177.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/dream-ze/p/17877177.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文来自博客园,作者:Chimengmeng,转载请注明原文链接:https://www.cnblogs.com/dream-ze/p/17877177.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?