• itertools模块


    • itertools.filterfalse()
    # 创建一个迭代器,从可迭代的元素中筛选出仅返回false的元素
    import itertools
    
    l1 = itertools.filterfalse(lambda x: x>4, [1,2,3,4,5,6,7,8,9])
    print(l1)  # <itertools.filterfalse object at 0x0083E658>
    print(list(l1))  # [1,2,3,4]
    
    • itertools.dropwhile()
    # 跳过可迭代对象的开始部分
    # 比如你想遍历一个可迭代对象,但是它开始的某些元素你并不感兴趣,想跳过它们。
    # 使用:传递一个函数对象和一个可迭代对象。返回一个迭代器对象,丢弃原有序列中直到函数返回False之前的所有元素,然会返回后面所有元素
    
    # 示例
    with open('xx.txt') as f;
    	for line in f:
            print(line, end='')
            
        
    """打印内容
    # User Database
    #
    # Note that this file is consulted directly only when the system is running
    # in single-user mode. At other times, this information is provided by
    # Open Directory.
    nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false
    root:*:0:0:System Administrator:/var/root:/bin/sh
    """
    # 如果你想跳过开始部分的注释行的话,可以这样做
    from itertools import dropwhile
    with open('xx.txt') as f:
        for line in dropwhile(lambda x: x.startwith('#'), f):
        	print(line, end='')
            
    # 参考itertools.islice()  # 知道跳过的元素的个数,可以使用这个
    
    • itertools.takewhile()
    # 迭代一个序列,直到指定的谓词首次变为假
    import itertools
    
    lst = [7,5,10,4,9,6,2,1]
    
    print(list(itertools.takewhile(lambda x:x>4, lst)))
    # 输出
    [7,5,10] # 会将lst中的元素一个一个拿到lambda中进行比较,当遇到一个为false时,那么就结束
    

    -------------------------------------------

    个性签名:代码过万,键盘敲烂!!!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    关于排列组合与分配问题
    Stirling数
    UVA 294 求约数的个数
    Linux中profile与bashrc的作用
    一致性哈希(consistent hashing)算法
    TCP三次握手与四次挥手
    MySQL查询昨天、今天、7天、近30天、本月、上一月数据
    java基础-注解Annotation原理和用法
    java基础-浅复制与深复制的理解
    Linux命令行提示符设置
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/14769481.html
Copyright © 2020-2023  润新知