filter有“过滤”的意思,filter函数作用是过滤列表中的元素,返回一个由所有符合条件的元素组成的列表。符合条件即条件函数映射到该元素时返回值为True,话不多说,举栗子:

list1 = [1, 2, 3, 4, 5, 6]
#求列表中所有能被2整除的元素,并且结果以列表形式返回

#方法一:
list2 = []
for i in list1:
    if i % 2 == 0:
        list2.append(i)
print list2

#方法二:
def func(x):
    if x % 2 == 0:
        return True
    else:
        return False    
print filter(func,list1)

#方法三:
print filter(lambda x: x % 2 == 0, list1)

#注:如果使用的是python3,filter返回的是一个迭代器,需要用list转换一下格式
print list(filter(lambda x: x % 2 == 0, list1))

输出:

[2, 4, 6]
[2, 4, 6]
[2, 4, 6]
[2, 4, 6]

其实,filter也类似于一个for循环,但是它是内部函数,计算速度比较快,结合lambda使用比较方便简洁。对于处理列表、元组、字典中所有元素的方法,还可以使用推导式,我会在别的章节讲到。
The End!Thanks~