python解析式
一、列表解析式
列表解析是外面一对中括号,它返回的是列表。
一般形式为:[expr for item in itratoble]
print([i+1 for i in range(10)]) #结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def inc(x):
return x**2 print([inc(i) for i in range(10)]) #结果:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
print([i for i in range(10) if i%2==0]) #结果:[0, 2, 4, 6, 8]
filter()方法接受一个函数和一个可迭代对象两个参数,返回一个生成器对象。
list(filter(lambda x:x%2==0,range(10))) #结果:[0,2,4,6,8]
map()方法接受一个函数和一个可迭代对象两个参数,返回一个列表。
map(lambda x:x+1,range(10)) #结果:[1,2,3,4,5,6,,7,8,9,10]
列表解析式的执行速度比filter()和map()都要快。
二、生成器解析式
生成器解析式是外面一对小括号,它返回的是一个生成器对象。它是按需计算或者说是延迟计算。
一般形式为:(expr for item in itratoble)
(x for x in range(10) if x%2==0)
三、集合解析式
集合解析式是外面一对大括号,它返回的是一个集合,并且它具有集合的一切特征。
一般形式为:{expr for item in 可hash的对象}
{x for x in range(10)}
#结果:{0,1,2,3,4,5,6,7,8,9}
四、字典解析式
字典解析式也是外面一对大括号,它需要两个表达式,一个生成key,另一个生成value,两个表达式之间用冒号分隔。所以它返回的是一个字典。
一般形式为:{k:v for item in itratoble}
{str(x):x for x in range(5)}
#结果:{'1':1,'0':0,'3':3,'2':2,'4':4}
python解析式的更多相关文章
- 05.python解析式与生成器表达式
解析式和生成器表达式 列表解析式 列表解析式List Comprehension,也叫列表推导式 #生成一个列表,元素0-9,将每个元素加1后的平方值组成新的列表 x = [] for i in ra ...
- Python 解析式、生成器
标准库datetime datetime模块 对日期.时间.时间戳的处理 datetime类 类方法 today() 返回本地时区当前时间的datetime对象 now(tz=None) 返回当前时间 ...
- 第四天python3 python解析式-生成器-迭代器
标准库datetime datetime模块 对日期.时间.时间戳的处理 datetime类 类方法: today() 返回本地时区当前时间的datetime对象: now(tz=None) 返回当 ...
- Python基础知识2-内置数据结构(下)
bytes.bytearray #思考下面例子: a = 1 b = a print(a == b)#True print(a is b)#True print(id(a) is id(b))#Fal ...
- [翻译]Python List Comprehensions: Explained Visually || Python列表解析式
原文1地址: http://treyhunner.com/2015/12/python-list-comprehensions-now-in-color/ 原文2地址: http://blog.tea ...
- [转]Python 的列表解析式,集合解析式,字典解析式
Python 的列表解析式,集合解析式,字典解析式 这三种都是 python 里面的语法糖. 语法糖,Syntactic Sugar,就是为了写程序时候少出错,发明的一些简便的方法,但不影响这个语法的 ...
- python列表解析式,字典解析式,集合解析式和生成器
一.列表解析式(列表推倒式): 功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表. 1 lst = [1, 3, 5, 8, 10] 2 ll = [x+x for x in ls ...
- Python之路(第十篇)迭代器协议、for循环机制、三元运算、列表解析式、生成器
一.迭代器协议 a迭代的含义 迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 b为何要有迭代器? 对于序列类型:字符串.列表 ...
- Python基础入门-列表解析式
今天我们使用Python中的列表解析式来实现一些简单功能.好了关于列表解析式是什么?我的理解是它可以根据已有列表,高效创建新列表的方式.列表解析是Python迭代机制的一种应用,它常用于实现创建新的列 ...
随机推荐
- SQL分区表示例
-- Create tablecreate table TT_FVP_OCR_ADDRESS( id NUMBER not null, waybill_no VARCHAR2(32) not null ...
- confluence输入数学公式之mathjax
1.概述 公司大数据业务需求,需要一些计算公式写入到confluence里面,并且可能会不断修改,如果上传图片的话修改起来不是很方便.于是google了一把,发现收费的有Latex Math下载量还是 ...
- 【JS】for in循环对象,hasOwnProperty()的作用
var obj = { name:"echolun", age:", sex:"male" }, objName=[], //用来装对象属性名 obj ...
- DataGridview启用列重新排序属性的作用
DataGridview是winform中经常用的控件,今天来了解一下启用列重新排序属性的作用 默认没有选中是不能改变列前后顺序的 启用列重新排序后如下图可以拖动列标题(列标头)来改变列前后顺序
- Oracle左连接、右连接、全外连接以及(+)号用法
1.准备工作 Oracle 外连接(OUTER JOIN)包括以下: 左外连接(左边的表不加限制) 右外连接(右边的表不加限制) 全外连接(左右两表都不加限制) 对应SQL:LEFT/RIGHT/F ...
- winform窗体 控件【MDI 窗体容器】
MDI :窗体容器 -- 在窗体中放置窗体 属性 IsMdiContainer : 是否是窗体 -- 只有 Form 有此属性 Form2 f2 = new Form2(); ...
- Java四中引用
在JDK1.2以后将对象应用分为4中,强引用,软引用,弱引用,虚引用,这样的方式可以更加灵活控制对象的声明周期 强引用 String str = "123"; ...
- Linux常用基本命令( rmdir, rm, mv )
1,rmdir,一个很鸡肋的命令,只能删除空目录 ghostwu@dev:~/linux/cp$ ls .txt .txt a a2 a3 ghostwu@dev:~/linux/cp$ rmdir ...
- vue.js自定义指令详解
写在文本前:相信在做vue的项目,你肯定接触了指令,我们常用vue内置的一些指令,比如v-model,v-text,v-if,v-show等等,但是这些内置指令不在本文的讲解范畴,本文想说的是其自定义 ...
- element-ui Pagination组件源码分析整理笔记(七)
element-ui源码的版本是2.4.9 pagination.js import Pager from './pager.vue'; import ElSelect from 'element-u ...