# filter()
"""
过滤序列,过滤掉不符合条件的元素,返回一个迭代器
"""
# filter(function,iterable)
# function:判断函数
# iterable :可迭代对象
# 序列的每一个元素作为参数传递给函数进行判断
# 然后返回True或False,最后将返回True的元素放到新列表中
def is_odd(n):
# 是否是奇数
return n%2==1
tmplist=filter(is_odd,list(range(10))) # <filter object at 0x000001B762943FD0>
print(list(tmplist)) # list()来获取元素 # [1, 3, 5, 7, 9]
import math
# 平方根是整数
def is_sqr(x):
return math.sqrt(x)%1==0
tmplist=list(filter(is_sqr,range(1,101)))
print(tmplist)
# 是否是素数
def is_primenumber(y):
if y<2:return False
for i in range(2,int(math.sqrt(y))+1):
# 存在整除,则不是素数
if y%i==0:return False
return True
tmplist=filter(is_primenumber,range(1,51))
print(list(tmplist)) # [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
# 方法2:踢除可被前面整除的=>暂未搞定
def odd_iter(n):
# while True:
while n<100: # 添加循环中止条件
yield n # 类似return,但是不会停止,而是逐一放在生成器中
n=n+2
网友评论