filter()

和map()类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

is palindrome

def is_palindrome(n):
    s = str(n)
    length = len(s)
    p1 = 0
    p2 = length - 1
    while p1 < p2:
        if s[p1] != s[p2]:
            return False
        p1 += 1
        p2 -= 1
    return True

output = fileter(is_palindrome, range(1, 1000))
print(list(output))