推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导,在Python2和3中都有支持:

  • 列表(list)推导式

  • 字典(dict)推导式

  • 集合(set)推导式

一、列表推导式

1、使用[]生成list

基本格式

[表达式 for 变量 in 列表]    或者  [表达式 for 变量 in 列表 if 条件]

例1:  过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母

>>> names = ['Bob','Tom','alice','Jerry','Wendy','Smith']    
>>> [name.upper() for name in names if len(name)>3]  
['ALICE', 'JERRY', 'WENDY', 'SMITH']

更多示例:http://www.jb51.net/article/67157.htm



生成间隔5分钟的时间列表序列:

["%02d:%02d" %(h,m) for h in range(0, 24) for m in range(0, 60, 5)]


二、字典推导式

字典推导和列表推导的使用方法是类似的,只不中括号该改成大括号。直接举例说明:

l = ["%02d:%02d" %(h,m) for h in range(0, 24) for m in range(0, 60, 5)]
d = {key:0 for key in s}
print(d)
print(sorted(d.key()))

更多示例:http://www.cnblogs.com/tkqasn/p/5977653.html


三、集合推导式

它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。

例一:

squared = {x**2 for x in [1, 1, 2]}
print(squared)
# Output: set([1, 4])