老师你好,在生成素数的例子中,为什么我把filter中的过滤函数以匿名函数的方式传入,得到的结果会不正确?!
def primes(): yield 2 it = _odd_iter() # 初始序列 while True: n = next(it) # 返回序列的第一个数 yield n it = filter(lambda x: x%n>0, it) # 这里改成匿名函数
输出全部是奇数,而不是素数
这里lambda中的n是闭包中的数据,在generator中闭包该怎么处理
Sign in to make a reply
桑桑喵喵233
老师你好,在生成素数的例子中,为什么我把filter中的过滤函数以匿名函数的方式传入,得到的结果会不正确?!
输出全部是奇数,而不是素数