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,则说明该值符合条件,就作为最终结果保留。

 

 

你可能感兴趣的:(python)