推导式 comprehensions(又称解析式):是 Python 中很强大的、很受欢迎的特性,具有语言简洁,速度快等优点

列表推导式 就是一个简单的公式,我们用这个列表推导式,把你好几行的for循环的过程给一行能解决掉,但是这个过程你必须放在列表的框中[  ]

一般用法:

#循环模式
#[经过加工的i for i in 可迭代对象]

#筛选模式
#[经过加工的i for i in 可迭代对象 if 条件 筛选]

比如你要将1-12的数字都加入一个列表中 ,这个时候你用for是最简便的

li = []  #新建一个列表  把所有的信息都加入其中
for i in  range(1, 12):  #循环遍历1-12
    li.append(i)
print(li)

#你以为这就是你最简便的方法吗  NO  最简便的方式 在下面呢这就是列表的推导式
l1 = [i for i in range(1,13)]  #用列表的推导式来 做print(l1)

生成器表达式:

其实就是和列表推导式 差不多 但是它的外部用的不是列表号  而是括号

l_obj = ('python %s期'% i for i in range(1,12))  #生成器生程式就是和列表推导式换了括号
print(l_obj)
print(l_obj.__next__())  #打印这个生成器生成式第一个元素
print(l_obj.__next__())#打印这个生成器生成式第二个元素

#列表推导式:一目了然,占内存。
#生成器表达式:不易看出,节省内容。

推导式练习:

l2 = [i*i for i in range(1,11)]   #用列表推导式来做一个1-10的所有数字的平方
print(l2)
#打印1-9的偶数
l3 = [i for i in range(1,10) if i %2 == 0]  print(l3)
#打印1-30内的所有的能整除3的数字l3 = [i for i in range(31) if i %3 == 0]print(l3)

#求一个列表中的嵌套的列表 然后把里面的元素含有两个e的元素打印出来
names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],         ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]m = [name for i in names for name in i if name.count('e')==2]print(m)

推导式前面加返回的变量  后面就是for循环然后和可迭代的对象  还可以加其他的判断语句

生成器生程式只是列表的推导式给它的括号 改变下 然后生程式的取值也是按照__next__()方法来取值的

字典的推导式:

#去一个字典中的key对应的value的key给返回出来
mcase = {'a':10,'b':34}
mcase_freque={ mcase[k]:k for k in mcase}  #把字典中的对应的key和value翻转并且给输出
print(mcase_freque)

转载于:https://www.cnblogs.com/zhaoyunlong/p/8719134.html

列表推导式 生成器表达式相关推荐

  1. Python入门之三元表达式\列表推导式\生成器表达式\递归匿名函数\内置函数

    本章目录: 一.三元表达式.列表推导式.生成器表达式 二.递归调用和二分法 三.匿名函数 四.内置函数 ================================================ ...

  2. format函数python生成列表_python 全栈开发,Day14(列表推导式,生成器表达式,内置函数)...

    一.列表生成式 生成1-100的列表 li = [] for i in range(1,101): li.append(i) print(li) 执行输出: [1,2,3...] 生成python1期 ...

  3. python之生成器(~函数,列表推导式,生成器表达式)

    一.生成器 概念:生成器的是实质就是迭代器 1.生成器的贴点和迭代器一样,取值方式也和迭代器一样. 2.生成器一般由生成器函数或者声称其表达式来创建,生成器其实就是手写的迭代器. 3.在python中 ...

  4. Python 列表推导 、生成器表达式与声明式编程

    1.****列表推导********* 用到函数的一个常见的操作是将其用于列表的所有项,并使用结果创建一个新的列表.例如: # coding=utf-8 ''' ****列表推导********* 用 ...

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

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

  6. python关键字列表的表达式,python 列表推导和生成器表达式的使用

    序列 序列是指一组数据,按存放类型分为容器序列与扁平序列,按能否被修改分为不可变序列与可变序列. 容器序列与扁平序列 容器序列存放的是对象的引用,包括list.tuple.collections.de ...

  7. python三元表达式求值_python 三元表达式的 列表推导式 生成器推导式

    python中三元表达式的语法如下 ===if else result = x if condition else y 另外一种三元表达式,比较少见 result = (x, y)[condition ...

  8. db2 语句包括不必要的列表_列表推导和生成器表达式的滥用

    列表推导是我在Python中最喜欢的功能之一.所以我写了一篇关于它们的文章进行讨论,并在PyCon 2018上进行了3小时的演讲论述. 虽然我很喜欢列表推导,但我发现一旦新的Pythonistas开始 ...

  9. 生成器函数,推导式,生成器表达式

    一.生成器 1生成器的定义 生成器的本质是迭代器 生成器一般由生成器函数或者生成器表达式来创建 生成器是手写的迭代器 2.生成器的特点 生成器的特点和迭代器一样. (1)惰性机制 (2)节省内存 (3 ...

最新文章

  1. 人工智能在音频链中找到自己的声音
  2. 【重磅】AI击败顶级德扑玩家的秘密!德扑AI创造者现身reddit,全面解答34个提问,详解Libratus的现状和未来
  3. Spring Cloud笔记
  4. python多线程共享全局变量_Python多线程-共享全局变量
  5. Oracle 数据库错误信息:动态执行表不可访问,本会话的自动统计被禁止
  6. Git初学札记(六)————在远程新建本地Branch与在本地新建远程Branch
  7. 1539. 第 k 个缺失的正整数
  8. 二叉树创建,遍历,叶子,深度
  9. Stacking:Catboost、Xgboost、LightGBM、Adaboost、RF etc
  10. ISO50001认证辅导,ISO50001提高能源利用效率的潜力涉及到产品实现的全过程
  11. Windows远程桌面单/多用户同时登录
  12. android 转码工具下载,视频格式转换工具app
  13. 第一章 DHT11温湿度传感器的使用
  14. Qt 利用海康摄像头的ISAPI协议进行抓图等操作
  15. ceb怎么转换成word_【解决】后缀.ceb文件怎么转换为word文档?
  16. 文件夹删除不掉-需要管理员权限删除
  17. linux filp open,诚意请教一个filp_open的问题。
  18. 《Turtle绘图》Python用Turtle库绘制多啦爱梦、小猪佩奇、皮卡丘等卡通人物
  19. 行人重识别+人脸识别+商品识别(新商品库对比)
  20. 某精英枪战游戏辅助脚本加密破解

热门文章

  1. Linux流行病毒家族清除方法集锦
  2. E: Sub-process /usr/bin/dpkg returned an error code (1)
  3. ubuntu16.04源码编译安装nginx1.16.2
  4. Linux中的 【 find 】 命令
  5. SQL Server抛出异常信息 RAISERROR
  6. PyCharm无法找到已安装的Python类库的解决方法
  7. Visual Studio 2015出现Cannot find one or more components. Please reinstall the application.的问题解决
  8. redis集群出现JedisNoReachableClusterNodeException异常(No reachable node in cluster)
  9. “ORA-01747: user.table.column, table.column 或列说明无效” 的解决方案
  10. Android Studio没有看到设备