自学Python day5——–函数式编程(filter)
Python内建的filter()函数用于过滤序列。
和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
例如:在一个list中,删掉偶数,只保留奇数,可以这么写:
def is_odd(n):
reutrn n % 2 == 1
list(filter(is_odd,[1,2,4,5,7])
结果是 [1,5,7]
练习:回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()滤掉非回数:
=====================================================
测试:
output = filter(is_palindrome, range(1, 1000))
print(list(output))
=====================================================
def is_palindrome(x):
m = str(x)
if(m[0] == m[-1]):
return x
output = filter(is_palindrome, range(1, 1000))
print(list(output))