推导式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']
生成间隔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()))
三、集合推导式
它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。
例一:squared = {x**2 for x in [1, 1, 2]}
print(squared)
# Output: set([1, 4])