函数会根据提供的函数对指定的可迭代对象的每个元素进行运算,并将运算结果为真的元素,以迭代器的形式返回。
# 1 假如lambda表达式 实现一行流代码
a=filter(lambda x:x%2,range(10))
list(a)
[1, 3, 5, 7, 9]
通过定义可以知道,filter(判断为真的表达式,传入的值)
x%2 x取值范围为:0~9 ,为真的情况值为1,为假的情况值为0,在这道题中,x初以2的余数若为0则为偶数,x除以2的余数为1则为奇数,所以若要将为真的结果输出,则要取x为奇数。
# 2 将字符串为小写的结果输出
list(filter(str.islower,"FishhC"))
['i', 's', 'h', 'h']
# 3 检验字符串首字母是否为大学
list(filter(str.istitle,"I Love You"))
['I', 'L', 'Y']
与上面一样,filter(判断为真的表达式,传入的值),选择合适的表达式,就会实现一行流代码。