Python 列表推导式 - Python零基础入门教程

目录

  • 一.Python 列表推导式简介
  • 二.Python 列表推导式语法
  • 三.Python 列表推导式练习
    • 1.Python 列表推导式案例一
    • 2.Python 列表推导式案例二
    • 3.Python 列表推导式和循环效率对比
  • 四.重点总结
  • 五.猜你喜欢

零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

一.Python 列表推导式简介

上一篇文章中我们介绍了 Python 条件推导式,实际上就是把多行代码合并为一行代码的操作,使用列表推导式可以让程序的运行效率更高(文章末尾有具体讲解),其实列表推导式其实和条件推导式类似;

Python 列表推导式是从一个或者多个迭代器快速简洁地创建数据类型的一种方法,它将循环和条件判断结合,从而避免语法冗长的代码,提高代码运行效率能熟练使用推导式也可以间接说明你已经超越了 Python 初学者的水平**。**

Python 推导式相关:

  • 条件推导式
  • 列表推导式
  • 字典推导式

二.Python 列表推导式语法

列表推导式是条件推导式和循环一起配合使用,并返回一个列表 list,并且整个表达式需要在[]内,因为返回值也是列表 list。

'''
语法一:exp1:在for循环中,如果x的值满足条件表达式condition(即条件表达式成立),返回exp1;条件表达式不成立则不返回x:for循环中变量data:一个序列(比如:列表/元组/字符串等)condition:条件表达式
'''[exp1 for x in data if condition]'''
语法二:exp1:在for循环中,如果x的值满足条件表达式condition(即条件表达式成立),返回exp1;条件表达式不成立则返回exp2condition:条件表达式exp2:在for循环中,如果x的值满足条件表达式condition(即条件表达式成立),返回exp1;条件表达式不成立则返回exp2x:for循环中变量data:个序列(比如:列表/元组/字符串等)'''[exp1 if condition else exp2 for x in data]

三.Python 列表推导式练习

1.Python 列表推导式案例一

获取 0 ~ 20 的所有偶数并且乘以 10,并返回所有计算之后的结果。示例代码如下:(使用 Python 列表推导式语法一实现)

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python Python 列表推导式.py
@Time:2021/3/27 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""'''
1.因为是获取0~20,包括20,所以使用range(0,21)
2.x*10 等价 语法一中的exp1
3.x%2 == 0 等价 语法一中的条件表达式condition
4.range(0,21) 等价 语法一中的data(序列)
'''list1 = [x*10 for x in range(0,21) if x%2 == 0] 
print(list1)
print(type(list1))'''
输出结果:
[0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200]
<class 'list'>'''

2.Python 列表推导式案例二

将 0 ~ 20 的偶数乘以 10 ,奇数乘以 100 ,并返回所有计算之后的结果。示例代码如下:(使用 Python 列表推导式语法二实现

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python Python 列表推导式.py
@Time:2021/3/27 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""'''
1.因为是获取0~20,包括20,所以使用range(0,21)
2.x*10 等价 语法二中的exp1
3.x*100 等价 语法二中的exp2
4.x%2 == 0 等价 语法二中的条件表达式condition
5.range(0,21) 等价 语法一中的data(序列)
'''list2 = [x*10 if x%2 == 0 else x*100 for x in range(0,21) ]
print(list2)
print(type(list2))'''
输出结果:
[0, 100, 20, 300, 40, 500, 60, 700, 80, 900, 100, 1100, 120, 1300, 140, 1500, 160, 1700, 180, 1900, 200]
<class 'list'>'''

3.Python 列表推导式和循环效率对比

可能有童鞋纳闷,我明明 for 循环 或者 while 循环就能实现的功能,为毛要用这鸟玩意推导式?

使用列表推导式的效率远远高于 for 循环,可能执行一句 print(“helloworld”) 对于 cpu 而已只需要 0.0002 秒,你可能感觉不到差距,如果需要输出一亿次 helloworld 呢?往往细节觉得成败!

假如有一个需求:将 0 ~ 10000000 (一亿)以内的所有整数存到列表中,对比一下 Python 列表推导式 和 for 循环耗时情况:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python Python 列表推导式.py
@Time:2021/3/27 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""import time # 添加time模块,用于统计代码运行时间#一共添加10000000次数据到列表中
total_num = 10000000#使用列表推导式
start_time = time.time()
list1 = [x for x in range(0,total_num)] # 列表推导式
end_time = time.time()
print("使用列表推导式耗时:{}秒".format(end_time-start_time))#使用普通for循环
start_time = time.time()
list2 = list()
for x in range(0,total_num): # for循环list2.append(x)
end_time = time.time()
print("使用普通for循环耗时:{}秒".format(end_time-start_time))'''
输出结果:
使用列表推导式耗时:0.5455152988433838秒
使用普通for循环耗时:1.2068836688995361秒
'''

输出结果很明显,实现通用的功能,Python 列表推导式的效率整整高出普通 for 循环一倍。

最后温馨提醒:测试请把循环次数改小一点,毕竟刚开始不小心多加了几圈圈,电脑死机了!

四.重点总结

  • 1.注意在 Python 列表推导式书写的时候,所有表达式都必须在 [] 内部,因为返回值是列表 list
  • 2.列表推导式是 Python 开发学习的知识点,多多联系,熟能生巧.

五.猜你喜欢

  1. Python 配置环境
  2. Python 变量
  3. Python 运算符
  4. Python 条件判断 if/else
  5. Python while 循环
  6. Python break
  7. Python continue
  8. Python for 循环
  9. Python 字符串
  10. Python 列表 list
  11. Python 元组 tuple
  12. Python 字典 dict
  13. Python 条件推导式
  14. Python 列表推导式
  15. Python 字典推导式

未经允许不得转载:猿说编程 » Python 列表推导式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525503.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 主流分辨率是多少,android 屏幕分辨率问题

iPhone的icon设计就这么简单&#xff0c;iPhone的屏幕只有320480像素&#xff0c;所以程序没有适配性问题。Android在研究Android的icon设计之前&#xff0c;有必要先了解Android的界面是如何适配多样化屏幕的。适配性由于同一个UI元素(如100100像素的图片)在高精度的屏幕上要比…

肥宅有理?大数据帮你找到不去健身房的原(jie)因(kou)

作者宋宇 赵玮雯来源DT财经原创作品&#xff0c;如有转载&#xff0c;请联系公众号授权。扪心自问&#xff0c;是什么拖住了你奔往健身房的腿&#xff1f;数据给出的理由能让你心服口吗&#xff1f;A4腰、马甲线&#xff0c;让你成功反手摸肚脐……这些词已经不火了&#xff0c…

多亏它,让大家做好“山竹”来袭的准备【Make It Real故事汇】

不得不说台风“山竹”来得快去得也快周日广东多个城市还在接受狂风暴雨的洗礼周一上班族就开启了通勤路上的“披荆斩棘”天气情况的变化自古就影响着民生大计在古代&#xff0c;人们常依据风向、动物异象等预测台风&#xff0c;比如“东风转北&#xff0c;搓绳缚屋”&#xff0…

华为matepad 鸿蒙,曝华为4月27日召开高端平板发布会:MatePad Pro2将亮相 首发鸿蒙系统...

去年五月份&#xff0c;华为推出了Mate系列首款平板电脑——华为MatePad Pro&#xff0c;该机搭载了业内顶级的硬件配置&#xff0c;配合华为专门针对大屏设计适配的系统&#xff0c;带来了非常优秀的使用体验&#xff0c;饱受消费者好评。现在&#xff0c;华为新一代高端平板产…

Python 字典推导式 - Python零基础入门教程

目录 一.Python 字典推导式简介二.Python 字典推导式语法三.Python 字典推导式实战 1.在字典中提取或者修改数据&#xff0c;返回新的字典2.在字符串中提取数据&#xff0c;返回新的字典 四.重点总结五.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Pytho…

Cloud一分钟 | 阿里云发布飞天2.0操作系统;京东云串联生态伙伴专治“看病难”...

Hello&#xff0c;everyone&#xff1a;9月28日早&#xff0c;星期五&#xff0c;祝大家工作愉快&#xff01;一分钟新闻时间&#xff1a;完01微 信 群 添加小编微信&#xff1a;tangguoyemeng&#xff0c;备注“进群公司职位”即可&#xff0c;加入【云计算学习交流群】&…

Python 不定长参数 *argc/**kargcs - Python零基础入门教程

目录 一.前言二.Python 不定长参数 argc/*kargcs 简介 1.函数不定长参数 *args 使用2.函数不定长参数 **kwargs 使用3.函数不定长参数*args 和**kwargs 只能放在形参的末尾&#xff0c;顺序不能错. 三.Python 不定长参数 argc/*kargcs 实战四.Python 不定长参数 argc/*kargcs …

外卖小哥是怎样炼成的?

图片来源&#xff1a;网络作者小鹏/陈万成/阮田来源城市数据团原创作品&#xff0c;如有转载&#xff0c;请联系公众号授权。在中国&#xff0c;外卖用户规模已达3.6亿&#xff0c;日均订单量上千万。为了服务这些嗷嗷待哺的食客&#xff0c;有超过百万数量的外卖骑手奔波在全国…

Python 匿名函数 lambda - Python零基础入门教程

目录 一.Python 匿名函数 lambda 语法二.Python 匿名函数 lambda 调用 1.lambda 匿名函数常规使用2. lambda 匿名函数使用不定长参数3. lambda 匿名函数作为参数使用 三.Python 匿名函数 lambda 重点总结&#xff1a;四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录…

必须建筑师附体!像盖大楼那样打造数据即服务

近两年产业界总用“数据洪流”来形容数据的大爆发&#xff0c;但如果我们真把它视作洪水&#xff0c;那么它只会带来冲击&#xff1b;如能积极发掘其潜藏的价值&#xff0c;它则可能变成一条流金之河&#xff0c;正如麦肯锡在研究中发现的那样&#xff1a;与竞争对手相比&#…

华为鸿蒙用着怎么样,首批华为鸿蒙用户体验如何?“差评”有点难听,但是很真实!...

为了实现国产替代&#xff0c;打破海外企业对操作系统的垄断。华为集团推出了鸿蒙操作系统&#xff0c;这是一款真正意义上的国产操作系统&#xff0c;可以从一定程度上突破海外企业对手机操作系统的限制 。当然&#xff0c;一款操作系统的发展需要广大用户的支持&#xff0c;尽…

Python return逻辑判断表达式 - 零基础入门教程

目录 一.return 逻辑判断表达式 and二.return 逻辑判断表达式 or三.return 逻辑判断表达式 and 和 or 配合使用四.return 逻辑判断表达式重点总结五.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.return 逻辑判断表达式 and and&…

用 Python 分析《斗破苍穹》,分析其究竟是烂片无疑还是沧海遗珠?

作者 | 量化小白H责编 | 郭芮近期根据小说《斗破苍穹》改编的同名电视剧正在热映&#xff0c;本文对《斗破苍穹》进行文本分析&#xff0c;分为两部分。首先爬取豆瓣影评进行简单分析&#xff0c;随后对于原创小说文本中的人物进行详细分析。影评分析爬取影评使用的也是之前《用…

Python input 函数 -Python零基础入门教程

目录 一.前言二.Python input 函数简介三.Python input 函数实战四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.前言 Python 内置函数其实挺多的&#xff0c;其中 input 和 eval 算得上比较特殊&#xff0c;input 属于交互式内置函数…

综评:5个方面看刚刚发布的Kubernetes 1.12

Kubernetes项目在过去几年中发展迅速&#xff0c;并且作为容器编排和管理解决方案的领导者而备受尊重。有了这个地位&#xff0c;Kubernetes开发者有责任提供经过充分测试&#xff0c;易于维护&#xff0c;高性能和可扩展的API和工具。在即将到来的每个发布周期中&#xff0c;大…

华为麒麟1020鸿蒙系统,华为P50pro最新确认:麒麟1020+立体全面屏+鸿蒙系统,这才是华为...

原标题&#xff1a;华为P50pro最新确认&#xff1a;麒麟1020立体全面屏鸿蒙系统&#xff0c;这才是华为华为P系列一直是领导华为手机上半年的发展&#xff0c;而今年的华为P40系列更是实现了大爆发&#xff0c;市场上手机销量不断的攀升&#xff0c;并且权威的科技评测也给出了…

干货 | 算法和编程面试题精选TOP50!(附代码+解题思路+答案)

作者 | javinpaul编译 | 王天宇、Jane整理 | Jane【导读】之前我们给同学们推荐了很多关于 Python 的面试资源&#xff0c;大家都表示很有用。这次营长表示要翻 Java 的牌子啦~ 应大家的强烈反馈&#xff0c;我们找了一套 Java 语言的算法和编程的面试题。这份面试资源主要包含…

Python map 函数 -Python零基础入门教程

目录 一.前言二.Python map 函数语法简介三.Python map 函数实战 1.使用 map 函数2.map 函数配合 lambda 匿名函数一起使用 四.Python map 函数效率对比五.Python map 函数总结六.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.前言 截…

鸿蒙os2.0开发者beta版,鸿蒙 OS 2.0 开发者beta版针对Mate 40系列设备开放

华为开始针对包括P40&#xff0c;Mate 30和MatePad Pro设备在内的设备招募HarmonyOS 2.0 Mobile开发人员beta版。招募之后&#xff0c;华为还开始向选定的测试人员推出HarmonyOS 2.0移动开发人员更新。根据最新信息&#xff0c;华为现已决定扩展适用于华为Mate X2可折叠手机&am…

python2版本libnum

如果运行RsaCtfTool工具 需要用到libnum&#xff0c;而网上基本上都是python3的libnum讲解&#xff0c;下面我就来说说python2的libnum https://github.com/ryanInf/python2-libnum 这个链接讲述的是python2的libnum模块 安装 git clone https://github.com/ryanInf/python2-l…