一、列表解析式

列表解析是外面一对中括号,它返回的是列表。

一般形式为:[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解析式的更多相关文章

  1. 05.python解析式与生成器表达式

    解析式和生成器表达式 列表解析式 列表解析式List Comprehension,也叫列表推导式 #生成一个列表,元素0-9,将每个元素加1后的平方值组成新的列表 x = [] for i in ra ...

  2. Python 解析式、生成器

    标准库datetime datetime模块 对日期.时间.时间戳的处理 datetime类 类方法 today() 返回本地时区当前时间的datetime对象 now(tz=None) 返回当前时间 ...

  3. 第四天python3 python解析式-生成器-迭代器

    标准库datetime datetime模块  对日期.时间.时间戳的处理 datetime类 类方法: today() 返回本地时区当前时间的datetime对象: now(tz=None) 返回当 ...

  4. Python基础知识2-内置数据结构(下)

    bytes.bytearray #思考下面例子: a = 1 b = a print(a == b)#True print(a is b)#True print(id(a) is id(b))#Fal ...

  5. [翻译]Python List Comprehensions: Explained Visually || Python列表解析式

    原文1地址: http://treyhunner.com/2015/12/python-list-comprehensions-now-in-color/ 原文2地址: http://blog.tea ...

  6. [转]Python 的列表解析式,集合解析式,字典解析式

    Python 的列表解析式,集合解析式,字典解析式 这三种都是 python 里面的语法糖. 语法糖,Syntactic Sugar,就是为了写程序时候少出错,发明的一些简便的方法,但不影响这个语法的 ...

  7. python列表解析式,字典解析式,集合解析式和生成器

    一.列表解析式(列表推倒式): 功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表. 1 lst = [1, 3, 5, 8, 10] 2 ll = [x+x for x in ls ...

  8. Python之路(第十篇)迭代器协议、for循环机制、三元运算、列表解析式、生成器

    一.迭代器协议 a迭代的含义 迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 b为何要有迭代器? 对于序列类型:字符串.列表 ...

  9. Python基础入门-列表解析式

    今天我们使用Python中的列表解析式来实现一些简单功能.好了关于列表解析式是什么?我的理解是它可以根据已有列表,高效创建新列表的方式.列表解析是Python迭代机制的一种应用,它常用于实现创建新的列 ...

随机推荐

  1. PHP面向对象——类

    <?php/** * Created by PhpStorm. * User: 63448 * Date: 2018/5/6 * Time: 9:44 *///类:相似的数据和数据操作的封装 c ...

  2. 阿里巴巴FastJSON使用实例

      1. 什么是fastjson? fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到Ja ...

  3. Netty 启动过程源码分析 (本文超长慎读)(基于4.1.23)

    前言 作为一个 Java 程序员,必须知道Java社区最强网络框架-------Netty,且必须看过源码,才能说是了解这个框架,否则都是无稽之谈.今天楼主不会讲什么理论和概念,而是使用debug 的 ...

  4. 并发编程之 Condition 源码分析

    前言 Condition 是 Lock 的伴侣,至于如何使用,我们之前也写了一些文章来说,例如 使用 ReentrantLock 和 Condition 实现一个阻塞队列,并发编程之 Java 三把锁 ...

  5. 并发编程之 CopyOnWriteArrayList 源码剖析

    前言 ArrayList 是一个不安全的容器,在多线程调用 add 方法的时候会出现 ArrayIndexOutOfBoundsException 异常,而 Vector 虽然安全,但由于其 add ...

  6. MVC应用程序的jQuery代码重构

    先看看这篇<在jQuery定义自己函数>http://www.cnblogs.com/insus/p/3415444.html 程序越看越是有重构的地方. 先看1部分,由于在#16代码有宣 ...

  7. 盐水的故事(hdu1408)

    盐水的故事 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  8. js飘窗

    广告页上总会出现飘窗效果: adver_pos_id = getOtherParameter("id"); adver_Sid = getOtherParameter(" ...

  9. HTML(5)基础

    1.html常用标签 <pre>...</pre>:标识预定义文本 <a>是anchor的缩写,<a>标签定义锚点和超链接,<a>常与hre ...

  10. Echarts地图绘制(散点,色卡)

    echarts绘制地图时,提供了js内部注册,也提供了json数据手动注册,这两种都可以绘制对应地图,但有一点不同的是,js内部只注册了中国地图和世界地图,而json数据提供了世界,中国,中国城市的数 ...