python高阶函数----filter函数

filter函数描述

 filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

  filter() 函数的语法:

filter(function, iterable)
  • function -- 判断函数。
  • iterable -- 可迭代对象。

 filter()函数的返回值

返回值为迭代器对象

示例 

 # 1.生成1~10以内奇数的列表
def is_odd(x):
    return x % 2 == 1
L = [x for x in filter(is_odd, range(1, 10))]
print(L)
或者:
print([x for x in filter(lambda x:x % 2 == 1, range(1, 10))])

# 2. 将 1 ~ 20 的偶数用filter生成可迭代 对象后将可迭代对象生成的数放入到列表L中
def is_odd(x):
    return x % 2 == 0
L = [x for x in filter(is_odd, range(1, 21))]
print(L)
或者:
print([x for x in filter(lambda x:x % 2 == 0, range(1, 21))])

# 2. 写一个函数is_prime(x) 判断x是否是素数用filter函数打印出: 20 ~ 30之间的全部素数
def is_prime(x):
    for i in range(2, x):
        if x % i == 0:
            return False
    return True
L = [x for x in filter(is_prime, range(20, 31))]
print(L)

猜你喜欢

转载自blog.csdn.net/py_1995/article/details/83902992