三行代码筛选回数:回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()筛选出回数
题目来源是廖雪峰的官方网站
之前看了网上一些解答,写得比较长,感觉结合切片写可能好一点。
代码如下:
#筛选1-1000的回数
def is_palindrome(L):
a = list(map(int,str(L)))
b = a[::-1]
return a == b
output = filter(is_palindrome, range(1, 1000))
#打印
print(list(output))
核心代码只有三行,将传入的整数拆为单个数字组成列表,再将列表反转,判断列表是否相等,解决问题。