美文网首页
py3笔记42:内置函数之filter

py3笔记42:内置函数之filter

作者: _百草_ | 来源:发表于2023-05-29 16:46 被阅读0次
# 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

相关文章

网友评论

      本文标题:py3笔记42:内置函数之filter

      本文链接:https://www.haomeiwen.com/subject/gynjedtx.html