列表推导式 生成器表达式
推导式 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
列表推导式 生成器表达式相关推荐
- Python入门之三元表达式\列表推导式\生成器表达式\递归匿名函数\内置函数
本章目录: 一.三元表达式.列表推导式.生成器表达式 二.递归调用和二分法 三.匿名函数 四.内置函数 ================================================ ...
- format函数python生成列表_python 全栈开发,Day14(列表推导式,生成器表达式,内置函数)...
一.列表生成式 生成1-100的列表 li = [] for i in range(1,101): li.append(i) print(li) 执行输出: [1,2,3...] 生成python1期 ...
- python之生成器(~函数,列表推导式,生成器表达式)
一.生成器 概念:生成器的是实质就是迭代器 1.生成器的贴点和迭代器一样,取值方式也和迭代器一样. 2.生成器一般由生成器函数或者声称其表达式来创建,生成器其实就是手写的迭代器. 3.在python中 ...
- Python 列表推导 、生成器表达式与声明式编程
1.****列表推导********* 用到函数的一个常见的操作是将其用于列表的所有项,并使用结果创建一个新的列表.例如: # coding=utf-8 ''' ****列表推导********* 用 ...
- mysql数据字典生成器_「python技术」列表推导、生成器表达式和字典推导的差异及其示例
#开往春天新创作大赛# 前言 列表推导式构建列表的快捷方式,而生成器表达式则可以用来创建其他任何类型的序列.自python2.7以后,列表推导和生成器表达式的概念就应用到了字典上,所以就有了字典推导, ...
- python关键字列表的表达式,python 列表推导和生成器表达式的使用
序列 序列是指一组数据,按存放类型分为容器序列与扁平序列,按能否被修改分为不可变序列与可变序列. 容器序列与扁平序列 容器序列存放的是对象的引用,包括list.tuple.collections.de ...
- python三元表达式求值_python 三元表达式的 列表推导式 生成器推导式
python中三元表达式的语法如下 ===if else result = x if condition else y 另外一种三元表达式,比较少见 result = (x, y)[condition ...
- db2 语句包括不必要的列表_列表推导和生成器表达式的滥用
列表推导是我在Python中最喜欢的功能之一.所以我写了一篇关于它们的文章进行讨论,并在PyCon 2018上进行了3小时的演讲论述. 虽然我很喜欢列表推导,但我发现一旦新的Pythonistas开始 ...
- 生成器函数,推导式,生成器表达式
一.生成器 1生成器的定义 生成器的本质是迭代器 生成器一般由生成器函数或者生成器表达式来创建 生成器是手写的迭代器 2.生成器的特点 生成器的特点和迭代器一样. (1)惰性机制 (2)节省内存 (3 ...
最新文章
- 人工智能在音频链中找到自己的声音
- 【重磅】AI击败顶级德扑玩家的秘密!德扑AI创造者现身reddit,全面解答34个提问,详解Libratus的现状和未来
- Spring Cloud笔记
- python多线程共享全局变量_Python多线程-共享全局变量
- Oracle 数据库错误信息:动态执行表不可访问,本会话的自动统计被禁止
- Git初学札记(六)————在远程新建本地Branch与在本地新建远程Branch
- 1539. 第 k 个缺失的正整数
- 二叉树创建,遍历,叶子,深度
- Stacking:Catboost、Xgboost、LightGBM、Adaboost、RF etc
- ISO50001认证辅导,ISO50001提高能源利用效率的潜力涉及到产品实现的全过程
- Windows远程桌面单/多用户同时登录
- android 转码工具下载,视频格式转换工具app
- 第一章 DHT11温湿度传感器的使用
- Qt 利用海康摄像头的ISAPI协议进行抓图等操作
- ceb怎么转换成word_【解决】后缀.ceb文件怎么转换为word文档?
- 文件夹删除不掉-需要管理员权限删除
- linux filp open,诚意请教一个filp_open的问题。
- 《Turtle绘图》Python用Turtle库绘制多啦爱梦、小猪佩奇、皮卡丘等卡通人物
- 行人重识别+人脸识别+商品识别(新商品库对比)
- 某精英枪战游戏辅助脚本加密破解
热门文章
- Linux流行病毒家族清除方法集锦
- E: Sub-process /usr/bin/dpkg returned an error code (1)
- ubuntu16.04源码编译安装nginx1.16.2
- Linux中的 【 find 】 命令
- SQL Server抛出异常信息 RAISERROR
- PyCharm无法找到已安装的Python类库的解决方法
- Visual Studio 2015出现Cannot find one or more components. Please reinstall the application.的问题解决
- redis集群出现JedisNoReachableClusterNodeException异常(No reachable node in cluster)
- “ORA-01747: user.table.column, table.column 或列说明无效” 的解决方案
- Android Studio没有看到设备