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)