Python函数式编程之filter函数

高阶函数——filter

filter(f,itr)`将函数`f`作用于迭代器的每个元素,如果f返回true,则将结果加到最后输出,否则过滤掉

#高阶函数——filter
# filter(f,itr)`将函数`f`作用于迭代器的每个元素,如果f返回true,则将结果加到最后输出,否则过滤掉
#筛选出偶数
list1=list(filter(lambda x:x%2==0,range(1,11)))
print(list1)
#筛选出奇数
list2=list(filter(lambda x:x%2==1,range(1,11)))
print(list2)


#判断分数是否及格
def func(x):
    if x>60:
        return True
    else:
        return False

#筛选出及格的分数
list3=list(filter(func,[98,97,59,63,45,86]))
print(list3)

#回数是指从左向右读和从右向左读都是一样的数,例如12321,909。
# 请利用filter()筛选出500以内回数

def isBack(num):
    c=num%10
    b=int(num/10)%10
    a=int(num/100)%10
    #print(f"{a}-{b}-{c}")
    if a==0:
        if b==0:
            return True
        elif b==c:
            return True
        else:
            return False
    elif a==c:
        return True
    else:
        return False

list4=list(filter(isBack,range(0,500)))
print(list4)

运行结果:

[1, 3, 5, 7, 9]
[98, 97, 63, 86]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121, 131, 141, 151, 161, 171, 181, 191, 202, 212, 222, 232, 242, 252, 262, 272, 282, 292, 303, 313, 323, 333, 343, 353, 363, 373, 383, 393, 404, 414, 424, 434, 444, 454, 464, 474, 484, 494]
发布了52 篇原创文章 · 获赞 27 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_37457432/article/details/87970801