题目回数是指从左向右读和从右向左读都是一样的数,例如123321,909。请利用filter()滤掉非回数。 1、程序分析 filter()把传入的函数一次作用于每个元素,然后如果返回值是True,则保留该元素,如果返回值为False,则丢弃该元素。 利用切片方法:[::-1]含义就是,所有列表里的数,每负1,取一个。也就是将所有元素反向。 测试:
>>>L = [1,2,3,4,5,6,7,8,9]
>>>L[::-1]
[9,8,7,6,5,4,3,2,1]
2、程序实现
#Topic : 利用filter()滤掉非回数
#File Name : Palindrome.py
#Author : Jack Cui
#Created : 15 April 2016
def is_palindrome(n):
s = str(n)
return s == s[::-1]
if __name__ == "__main__":
n = int(input("您要查询前多少的回数?\n请您输入:"))
result = filter(is_palindrome,range(1,n+1))
print(list(result))
3、结果显示