1. 程式人生 > >python filter 求100以內素數

python filter 求100以內素數

python filter的用途: 從可迭代元素中過濾不想要的資料 或者說是留下想要的資料

經典題目:求100以內的素數

分析:題目無非就是從100元素中篩選滿足條件的資料,這不正是python 過濾器的應用場景嗎?

def find(x):
	
	for i in range(2,x):
		if x % i == 0:
			return False
	return True

這是我們自定義的一個函式,演算法很簡單 如果該數能被某個數被2到該數減1的數整除,則該數就不是素數 返回False,否則就斷定該數為素數 並返回True

然後我們可以將該函式應用到可迭代序列的每一個元素上,看例子:

list(filter(find,range(2,100)))


[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

把2-100之間的每個數都作為引數傳入到find函式中,如果該引數傳入該函式後,返回值為True,則說明該值符合條件,就作為最終結果保留。