赞
踩
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~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。