Python 入门之 推导式

学习python中有什么不懂的地方,小编这里推荐加小编的python学习群:895,817, 687
有任何不懂的都可以在里面交流,还有很好的视频教程pdf学习资料,大家一起学习交流!

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

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入门 推导式 ! 解释:生成器表达式和列表推导式的区别相关推荐

  1. 函数生成器、生成器表达式,列表推导式

    目录 一.生成器 ⼆.列表推导式,⽣成器表达式以及其他推导式 三.字典推导式 四.集合推导式 一.生成器 ⼀.⽣成器什么是⽣成器.⽣成器实质就是迭代器. def fun():print('111')r ...

  2. python 三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数

    一.三元表达式 语法:[成立1 if condition1 else成立2 if condition2 else ...if 成立N conditionN else 不成立] sex = 'man' ...

  3. Python 三元表达式、列表推导式、生成器表达式

    一.三元表达式 三元表达式,也称为if,else的紧凑形式.具体用法如下: def max(a,b):if a>b:return aelse:return bdef max(a,b):retur ...

  4. 生成器、生成器函数、推导式、生成器表达式

    一.生成器 生成器的本质就是迭代器 生成器的特点和迭代器一样.取值方式和迭代器一样(__next__(),send():给上一个yield传值) 生成器一般由生成器函数或者生成器表达式来创建 其实就是 ...

  5. mysql数据字典生成器_「python技术」列表推导、生成器表达式和字典推导的差异及其示例

    #开往春天新创作大赛# 前言 列表推导式构建列表的快捷方式,而生成器表达式则可以用来创建其他任何类型的序列.自python2.7以后,列表推导和生成器表达式的概念就应用到了字典上,所以就有了字典推导, ...

  6. 三元表达式、列表推导式、生成器表达式、递归、内置函数、匿名函数

    一.三元表达式 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 二.列表推导式和生成器表达式 #老 ...

  7. 三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数(day4)

    一.三元表达式.列表推导式.生成器表达式 1.三元表达式name=input('姓名>>: ')res='SB' if name == 'alex' else 'NB'print(res) ...

  8. python列表推导式生成随机数_Python:列表推导式/生成器推导式

    一,列表推导式和生成器表达式 l = [i for i in range(10)] print(l) l1 = ['选项%s'%i for i in range(10)] print(l1) 1.把列 ...

  9. 生成器,生成器表达式及各种推导式

    生成器 什么是生成器?⽣成器实质就是迭代器. 在python中有三种⽅式来获取⽣成器: 通过⽣成器函数 通过各种推导式来实现⽣成器 通过数据的转换也可以获取⽣成器 ⾸先, 我们先看⼀个很简单的函数: ...

最新文章

  1. 网络工程师中级2018 2019 2004-2017年真题+答案【结构介绍】
  2. java是什么 需要学什么_Java是什么,Java需要学习哪些内容?如何自学Java?
  3. spark on yarn参数: 任务优先级
  4. linux sublime nodejs,Windows环境下sublime的Nodejs插件详细安装图解
  5. libsvm与python的使用
  6. 如何解决 SQL Server 安装程序中的 COM+ 系统配置检查失败问题
  7. Sentinel(八)之熔断降级
  8. Java EE + MongoDb与Apache TomEE和Jongo Starter项目
  9. SVN的安装配置(一)
  10. java鸟和翅膀组合关系怎么写_关联、聚合、组合和依赖之间区别
  11. 事后分析报告(M2阶段)
  12. springboot session超时设置_Spring Boot+Spring Security:获取用户信息和session并发控制...
  13. python学习——格拉布斯准则实现
  14. PCL提取点云的边界
  15. 新手小坑:sql表int字段自动填0
  16. 分享我见到的培训面试和就业的情况(同时给出建议)
  17. activiti中关于历史数据的表
  18. 微服务架构-ruoyi
  19. [转]步入成熟的无线视频应用 英特尔WiDi无线视频传输研究
  20. 就您所知,它只是一个Java库

热门文章

  1. 进程和线程的基本概念
  2. mysql主表一条数据对应从表多条数据需要只显示一条
  3. 给echarts添加筛选时间控件时,控件不显示,并设置数据库无数据时echarts模块显示暂无数据
  4. Spring Cloud——基于Dubbo的分布式Session解决方案
  5. FineReport——设计时无相关数据库查看权限,使用对应数据库解决方案
  6. Navicat——连接SQL Server数据库方法
  7. 2019牛客暑期多校训练营(第十场)
  8. HDU 3947 River Problem
  9. matlab 除噪点,MATLAB应用在基于噪声检测的图像均值去噪法
  10. Docker Gogs