python 学习笔记(5)

本文深入探讨了Python内置函数filter()的应用,通过实例演示如何使用filter()筛选奇数、非空字符串及回文数,最后介绍了如何利用filter()实现素数生成器。
 -*- coding: utf-8 -*-
#Python内建的filter()函数用于过滤序列。

L=[1,2,3,4,5,6,7]
def is_odd(n):
    return n%2==1

r=filter(is_odd,L)
print(list(r))
M=['A', '', 'B', None, 'C', '  ']
def empty(s):
    return s and s.strip()
m=filter(empty,M)
print(list(m))
# 练习

#回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()筛选出回数:
#line = "abcde"
#line[:-1]
#结果为:'abcd'
#line = "abcde"
#line[::-1]
#结果为:'edcba'
def is_palindrome(n):
    return str(n)==str(n)[::-1]
output=filter(is_palindrome,range(1,1000))
print(list(output))



def odd_iter():
    n=1
    while True:
        n=n+2
    yield n

def not_division(n):
    return lambda x :x % n>0
def primes():
    yield 2
    it=odd_iter()
    while True:
        n= next(it)
        yield n
        it=filter(not_division(n),it)


# primes 是一个无限序列
for n in primes():

    if n < 1000:
        print(n)
    else:
        break




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值