借助python内建的filter()
方法实现。
python内建的filter()
方法用于过滤序列。函数接收一个函数和一个序列,filter()
把传入的函数依次作用于每个元素,然后根据返回值是True
还是False
决定保留还是丢弃该元素。
code:
# -*- coding: utf-8 -*-
def is_palindrome(number):
ch = str(number)
#print(ch[0:-1], ch[-1:1])
return ch[:] == ch[::-1]
def main():
output = filter(is_palindrome, range(1, 1000))
print(list(output))
if __name__ == '__main__':
main()
注意:filter()
函数返回的是一个Iterator
,也就是一个惰性序列,所以要强迫filter()
完成计算结果,需要用list()
函数获得所有结果并返回list
。