用filter(f,L)函数,将函数f依次作用于L序列,返回的是一个Iterable。
结合这个知识点编写埃尔筛法(求素数序列)程序。
# -coding:utf-8-
n=int(input('请输入需要打印多少以内的素数?'))
#函数功能是:依次判断序列中的数能否被序列首位整除,若不能整除,则为真
def is_multi(x):
if x%L[0]!=0:
return 1
else:
return 0
L=list(range(2,n))
r=[2]
for i in range(n):
L=list(filter(is_multi,L))
if len(L):
r.append(L[0])
else:
pass
print(r)
第二部分,利用filter()函数求取1000以内的回数序列。
# -coding:utf-8-
def is_palindrome(n):
s=str(n)
l=len(s)
for i in range(l):
if s[i]==s[l-i-1]:
return 1
else:
return 0
#测试
output=filter(is_palindrome,range(1,1000))
print(list(output))