目录

  • 一.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 列表推导式

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

  1. python怎么输出浮点数_python 零基础入门教程第 2 章:基本数据类型 (一)

    一.什么是数据类型 编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算. 每种编程语言都会有一些基本的数据类型用来表示现实世界中的 ...

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

    目录 一.Python 字典推导式简介 二.Python 字典推导式语法 三.Python 字典推导式实战 1.在字典中提取或者修改数据,返回新的字典 2.在字符串中提取数据,返回新的字典 四.重点总 ...

  3. Python globals 函数 - Python零基础入门教程

    目录 一.Python globals 函数语法 二.Python globals 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Pytho ...

  4. Python locals 函数 - Python零基础入门教程

    目录 一.locals 函数语法 二.locals 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.locals ...

  5. Python reduce 函数 - Python零基础入门教程

    目录 一.Python reduce 函数简介 1.reduce 函数语法 2.reduce 函数原理 二.Python reduce 函数使用 1.reduce 函数普通使用 2.reduce 函数 ...

  6. Python chr 函数 - Python零基础入门教程

    目录 一.Python chr 函数简介 二.Python chr 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一 ...

  7. Python bytes 函数 - Python零基础入门教程

    目录 一.bytes 函数简介 二.bytes 函数使用 1.定义空的字节序列 bytes 2.定义指定个数的字节序列 bytes ,默认以 0 填充,不能是浮点数 3.定义指定内容的字节序列 byt ...

  8. Python range 函数 - Python零基础入门教程

    目录 一.Python range 函数简介 二.Python range 函数使用 1.Python range 函数常规使用 2.Python range 函数在 for 循环中使用 三.猜你喜欢 ...

  9. Python callable 函数 - Python零基础入门教程

    目录 一.Python callable 函数简介 二.Python callable 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Pyt ...

最新文章

  1. 数据库系统概论:第十二章 数据库管理系统
  2. Tips - C++
  3. 这些数学趣图,数学老师看了后会怎么想?
  4. 在服务器上搭建基于yolo3 与crnn 实现中文自然场景文字检测及识别,GPU版本
  5. 如何优雅地从四个方面加深对深度学习的理解
  6. 互联网晚报 | 3月22日 星期二 |​ ​工作人员标注mu5735残骸并展开调查;万门大学疑似解散VIP群跑路...
  7. hadoop--HDFS的读写数据流程
  8. java 8 localdatetime_java8 时间 LocalDateTime常用方法
  9. python简单的编程_简单的Python2.7编程初学经验总结
  10. mysql 打开慢查询日志
  11. ERP+WMS信息一体化案例:汽车钢板弹簧企业【神风弹簧】
  12. NetSetMan Pro(ip快速切换工具)官方中文版V5.1.0 | 电脑ip切换软件下载
  13. 你不可不知的铠装光缆常识
  14. 电力用高压锅炉管物理性能检验
  15. Could not get a resource since the pool is exhausted
  16. 【Spring源码三千问】Advice、Advisor、Advised都是什么接口?
  17. python3字典运算_Python3字典与集合
  18. openlayers2.13 地图绘点[点可以拖动,并且实时更新后台数据],测距同时更新数据到数据库
  19. C++——动态空间分配
  20. 用ARIMA模型做需求预测

热门文章

  1. 汽车之家:基于 Flink + Iceberg 的湖仓一体架构实践
  2. Redis radix tree源码解析
  3. Flutter路由管理代码这么长长长长长,阿里工程师怎么高效解决?(实用)
  4. 阿里云HBase携X-Pack再进化,重新赋能轻量级大数据平台
  5. 历时 4 年,阿里云推出金融核心系统转型实践书
  6. 如何成功构建大规模 Web 搜索引擎架构?
  7. 分布式精华问答 | 分布式与集群的区别是什么?
  8. [重磅] 如何更好地实现服务调用和消息推送
  9. c语言逗号占几个字符,C语言 scanf输入多个数字只能以逗号分隔的操作
  10. three.js和php,threejs--初创项目