推导式就是构建比较有规律的列表,生成器,字典等一种简便的方式。

1、推导式

(1)列表推导式

<1> 普通循环: [变量 for循环]

print([i for i in range(10)])

<2> 筛选模式:[加工后的变量 for循环 加工条件]

print([i for i in range(10) if i % 2 ==0])

(2)集合推导式

<1> 普通循环: {变量 for循环}

print({i for i in range(10)})

<2> 筛选模式:{加工后的变量 for循环 加工条件}

print({i for i in range(10) if i % 2 == 1})

(3)字典推导式

<1> 普通循环: {键:值 for循环}

print({i: i+1 for i in range(10)})

<2> 筛选:{加工后的键:值 for循环 加工条件}

print({i: i+1 for i in range(10) if i % 2 == 0})

(4)生成器推导式

<1> 普通循环:(变量 for循环)

tu = (i for i in range(10))

<2> 筛选:(加工后的变量 for循环 加工条件)

# tu = (i for i in range(10) if i > 5)

数据类型 (pyhton3: range() | python2 :xrange()) 都是可迭代对象 __iter__()

文件句柄是迭代器 __iter__() __next__()

2、生成器表达式和列表推导式的区别

(1)列表推导式比较耗内存,所有数据一次性加载到内存。而生成器表达式遵循迭代器协议,逐个产生元素。

(2)得到的值不一样,列表推导式得到的是一个列表.生成器表达式获取的是一个生成器

(3)列表推导式一目了然,生成器表达式只是一个内存地址。

​ 无论是生成器表达式,还是列表推导式,都只是Python提供的一个相对简单的构造方式,因为使用推导式非常简单,所以大多数都会为之着迷,这个一定要慎重,推导式只能构建相对复杂的并且有规律的对象,对于没有什么规律,而且嵌套层数比较多(for循环超过三层)这样就不建议使用推导式构建。

生成器的惰性机制: 生成器只有在访问的时候才取值,说白了.你找他要才给你值.不找他要.他是不会执行的.

python 推导式_Python 入门之 推导式相关推荐

  1. python字典推导式_python的各种推导式(列表推导式、字典推导式、集合推导式)...

    推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 共有三种推导,在Python2和3中都有支持: 列表(lis ...

  2. python列表推导式_python的各种推导式(列表推导式、字典推导式、集合推导式)...

    推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 共有三种推导,在Python2和3中都有支持:列表(list ...

  3. python代码测试_Python入门学习系列——Python代码测试

    Python代码测试 对于编写的代码,可以使用unittest模块中的相关方法进行测试. 测试函数 首先定义一个简单的函数,该函数用来合并名称并返回. name_function.py: def ge ...

  4. python爬虫式_Python网络爬虫(增量式爬虫)

    一.增量式爬虫背景: 当我们在浏览相关网页的时候会发现,某些网站定时会在原有网页数据的基础上更新一批数据,例如某电影网站会实时更新一批最近热门的电影.小说网站会根据作者创作的进度实时更新最新的章节数据 ...

  5. python图纸教程_python入门教程 python入门神图一张

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  6. python常用数据结构_Python入门: 数据结构大汇总

    一.列表 1.列表的创建 列表是有序集合,没有固定大小,能够保存任意数量任意类型的 Python 对象,语法为 [元素1, 元素2, ..., 元素n].关键点是 " 中括号 [ ]&quo ...

  7. python dict遍历_python入门

    python:简洁,优雅,快捷 简洁到变量可以不用定义直接用,可以调用很多函数,方便移植,对数据的处理速度快,但是耗内存 我学习python的时候,感觉这就像是在看小学生的作业,当然只是刚学习到了基础 ...

  8. python灰产_python入门之编码风格规范分享

    最需要写注释的是代码中那些技巧性的部分. 如果你在下次 代码审查 的时候必须解释一下, 那么你应该现在就给它写注释. 对于复杂的操作, 应该在其操作开始前写上若干行注释. 对于不是一目了然的代码, 应 ...

  9. python教程是什么-Python基础教程_Python入门知识

    Python基础教程频道为编程初学者提供入门前的所有基础知识,必须要掌握的一些PYTHON基础语法语句,基本的数据类型. 让大家可以更快速.更容易理解的的方式掌握Python编程所需要的基础知识,灵活 ...

最新文章

  1. 使用Python,OpenCV计算图像直方图(cv2.calcHist)
  2. HTML基本教程,及一些基本常用标签。
  3. Exchange2003配置垃圾邮件实时黑名单RBL
  4. 十万个为什么 —— 为什么一个数的 0 次方只能是 1
  5. javascript/jquery高度宽度详情解说分析
  6. 操作系统死机的12个问题
  7. php 数组对,PHP数组游标实现对数组的各种操作详解
  8. 计算机在档案部门应用范围,计算机在档案管理中的相关运用
  9. java小游戏源码_分享几款java小游戏源码
  10. pycharm更换python版本
  11. Rog14 Win10系统迁移新的三星固态硬盘
  12. p6s与onvif_大华的录像机添加海康摄像头,使用了onvif协议,为啥也添加不进去?...
  13. ios加密算法AES
  14. javascript查看详情与收起详情
  15. 波形发生器 -- 输出正弦波,三角波,矩形波,锯齿波,梯形波 -- DAC0832
  16. [我是面试官系列]如何判断一个人的执行力?
  17. 云原生背景看这一篇就够了
  18. 未解——Matlab积分运算int函数
  19. 西门子PLC状态字解释
  20. 喜讯!湖南云畅网络科技有限公司成为百度核心生态伙伴! 共建智慧交通新生态

热门文章

  1. CXF客户端配置请求超时限制-SocketTimeoutException(Spring配置文件中配置和通过代码进行配置)
  2. Samba的简介和配置
  3. 检索数据_5_给字段取个有意义的名字
  4. python 求组合数最快方法_Python-生成符合条件的大集合组合的最有效方法?
  5. php 生成pdf 中文,php采用tcpdf生成pdf支持中文,图片
  6. 公司软件AiDitron中涉及的英文单词及含义
  7. SSD论文阅读(Wei Liu——【ECCV2016】SSD Single Shot MultiBox Detector)
  8. ubuntu18.4 安装swoole 和 php 扩展 swoole
  9. CSS3:linear-gradient,线性渐变的使用方法
  10. delete file$ recovery----惜分飞