python求素数下面这个函数式不是很明白print reduce(lambda l,y:not 0 in map(la
1个回答

not 0表示非0 返回真,0返回假

print reduce(

lambda l,y:#递减的操作函数

(not 0 in map(lambda x:y % x,l)) and (l+[y]) or l,#l是一个列表[],结果l中后加入的数不能被前数整除,被整除则不添加后数

xrange(2,1000),#范围[2,1000)

[] )

测试到6,就把6依次整除之前的l=[2,3,5] ,除2余0,就放弃6.l仍是[2,3,5]

测试到7,就把7依次整除之前的l=[2,3,5] ,除2都不余0,加入6.l变成[2,3,5,7]

最后得到一个纯素数的列表[];