zoukankan      html  css  js  c++  java
  • 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时,那么就结束
    

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

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

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

  • 相关阅读:
    算法----递归
    函数调用栈、任务队列、事件轮询、宏任务、微任务
    苹果浏览器和ios中,时间字符串转换问题
    npm 命令行基本操作
    一些积累(做阿里笔试题)……
    CSS reset
    一些正则表达式的实例,供参考使用
    不同浏览器获取不同高与宽的方法
    盒子模型
    CSS中的字体样式和文本样式
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/14769481.html
Copyright © 2011-2022 走看看