我就廢話不多說了,直接上代碼吧!
def _int_iter(): """根據(jù)回文數(shù)的定義。首先生成一個從0開始的整數(shù)無限序列""" n = 0 while True: yield n n += 1 def _is_palindrome(n): """判斷n是否為回文數(shù),是就返回Ture,否就返回False""" L1 = list(str(n)) L2 = L1[:] # 利用列表的切片將L1復(fù)制出一個副本,并將副本賦值給L2(以免對L2進行操作時,改變L1) L2.reverse() #反轉(zhuǎn)L2(reverse函數(shù)只對原Iterable進行反轉(zhuǎn),不會返回值) return L1 == L2def palindromes(): """利用filter進行篩選,只保留符合回文數(shù)要求的n值,并返回一個惰性的序列""" it = _int_iter() while True: n = next(it) yield n it = filter(_is_palindrome, it)# 利用for循環(huán),輸出小于100000的所有回文數(shù)for num in palindromes(): if num < 100000: print(num) else: break
以上這篇 python3中利用filter函數(shù)輸出小于某個數(shù)的所有回文數(shù)實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)之家。
新聞熱點
疑難解答