filter()函数是python内置的一个高阶函数。
filter()函数接受一个函数f 和一个list,这个函数f的作用是对每个元素进行判断,返回True或False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
利用filter()过滤出1~100中平方根是整数的数。
代码实现方法如下:
方法一:(开方求余看是否等于0)
import math def is_sqrt(x):
return math.sqrt(x)%1==0
print filter(is_sqrt, range(1, 100))
方法二:(开方之后的值强制变成整型 与原来的开方后的值进行比较,看是否相等)
import math def is_sqr(x):
y=math.sqrt(x)
return int(y)==y
print filter(is_sqrt, range(1, 101))
最终的运行结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81]