推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导,在Python2和3中都有支持:
-
列表(list)推导式
-
字典(dict)推导式
-
集合(set)推导式
一、列表推导式
1、使用[]生成list
基本格式
1
|
[表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件]
|
例1: 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母
1
2
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分钟的时间列表序列:
1
|
["%02d:%02d" %(h,m) for h in range(0, 24) for m in range(0, 60, 5)]
|
二、字典推导式
字典推导和列表推导的使用方法是类似的,只不中括号该改成大括号。直接举例说明:
1
2
3
4
|
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])
本文转自 326647452 51CTO博客,原文链接:http://blog.51cto.com/svsky/1945844,如需转载请自行联系原作者