lambda表达式在filter函数里不起作用,求教。

我将lambda函数写在外部函数里能正常筛选,但是如果直接写在filter函数里就不起作用。

http://img4.mukewang.com/5a412b910001c40005630764.jpg

运行结果:

http://img4.mukewang.com/5a412b9d0001d29e14700070.jpg


http://img1.mukewang.com/5a412bb50001fd1f05630769.jpg

运行结果:

http://img2.mukewang.com/5a412bc3000163be07830073.jpg


代码如下:

def get_numbers():

    n = 1

    while True:

        n += 2

        yield n



def is_divisible(num):

    return lambda x: x % num > 0



def primes():

    yield 2

    temp = get_numbers()

    while True:

        num = next(temp)

        yield num

        temp = filter(is_divisible(num), temp)



for i in primes():

    if i < 100:

        print(i, end = ' ')

    else:

        break


我是小土豆
浏览 2170回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python