過濾回文數(shù)(filter)

題目

回數(shù)是指從左向右讀和從右向左讀都是一樣的數(shù),例如12321,909。請利用filter()濾掉非回數(shù):

def is_palindrome(n):

pass

# 測試:(求1000以內(nèi)的回文數(shù))

output = filter(is_palindrome, range(1, 1000))

print(list(output))


思路

1、構(gòu)建一個11開始的整數(shù)序列,無限生成。

2、定義一個篩選函數(shù):

①把整數(shù)換成字符串:str(n)

②切片字符串,判斷是否前后相等,把不想等的篩選掉。

3、定義一個生成器,不斷返回下一個回文數(shù)

4、設置退出循環(huán)的條件:1000以內(nèi)的回文數(shù)


答案:

誰能想到,答案只有一句話?

defis_palindrome(n):

? return n ==int(str(n)[::-1])


①把n轉(zhuǎn)換為str

②[::-1] 切片的知識,意思是將整個字符串反過來

③判斷 n? 是否等于 反過來的切片,如果等于,就是True。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容