Python3 filter函数是一个内置函数,它接收一个函数和一个可迭代对象,并对可迭代对象中的每个元素执行函数,最后返回一个由执行结果为True的元素组成的新列表。
filter() 函数的语法如下:
filter(function, iterable)
其中:
filter() 函数的工作原理是:传递的参数 function 是一个判断函数,它会对 iterable 中的每一项进行判断,如果 function 返回 True ,则该项会被保留在新列表中。如果 function 返回 False ,则该项会被舍弃。最后 filter() 函数将返回由执行结果为 True 的元素组成的新列表。
例如:我们要从一个 list 中找出所有大于 5 的元素,可以使用 filter() 函数来实现:
list1 = [1, 2, 3, 4, 5, 6, 7, 8] def func(x): return x > 5 list2 = list(filter(func, list1)) # [6, 7, 8]
上面代码中定义了一个 func() 函数用来判断 list1 中的元素是否大于 5 ;然后使用 filter() 函数将 list1 中大于 5 的元素保存在 list2 中。
总之,Python3 filter() 函数是一个很有用的内建函数,它可以帮助我们快速地从可迭代对象中选择特定项目并生成新列表。
Python3 内置函数
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
以下是 filter() 方法的语法:
filter(function, iterable)
返回一个迭代器对象
以下展示了使用 filter 函数的实例:
过滤出列表中的所有奇数:
#!/usr/bin/python3
def is_odd(n):
return n % 2 == 1
tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)
输出结果 :
[1, 3, 5, 7, 9]
过滤出1~100中平方根是整数的数:
#!/usr/bin/python3
import math
def is_sqr(x):
return math.sqrt(x) % 1 == 0
tmplist = filter(is_sqr, range(1, 101))
newlist = list(tmplist)
print(newlist)
输出结果 :
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Python3 内置函数
Python3 range() 函数用法Python3 内置函数Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以...
Python3 File fileno() 方法 Python3 File(文件) 方法概述fileno() 方法返回一个整型的文件描述符(file descriptor FD 整型),可...
Python3 os.access() 方法 Python3 OS 文件/目录方法概述os.access() 方法使用当前的uid/gid尝试访问路径。大部分操作使用有效的...