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]
来源: