推导式(又称解析式)是Python的一种独有特性,推导式是可以从一个数据序列构建另一个新的数据序列的结构体。共有三种推导,在Python2和3中都有支持:列表(list)推导式、字典(dict)推导式、集合(set)推导式。
列表推导式
列表推导式提供了一种简明扼要的方法来创建列表。
其语法如下:1
variable = [out_exp for out_exp in input_list if out_exp == 2]
实际上,在之前写快速排序时,已经见过列表推导式。列表推导式在有些情况下超赞,特别是当你需要使用for循环来生成一个新列表。举个例子,你通常会这样做:1
2
3squared = []
for x in range(10):
squared.append(x**2)
你可以使用列表推导式来简化它,就像这样:1
squared = [x**2 for x in range(10)]
#字典推导式
字典推导和列表推导的使用方法是类似的,它的语法如下:1
d = {key: value for (key, value) in iterable}
看下面的例子:1
2
3
4
5"a":1, "b":2, "c":3, "d":4} dict={
for k,v in dict.items()} d={v:k
print d
{1: 'a', 2: 'b', 3: 'c', 4: 'd'}
>>>
在上面的例子中,我们可以快速交换字典键—值。
集合推导式
集合推导式跟列表推导式差不多,主要区别在于:1.不使用[],使用{};2.结果中无重复;3.结果是一个set()集合,集合里面是一个序列:1
2
3
42 for i in [1,1,2]} squared={i*
print squared
set([2, 4])
>>>