美文网首页Python
itertools.dropwhile() --跳过可迭代对象中

itertools.dropwhile() --跳过可迭代对象中

作者: cook__ | 来源:发表于2018-10-03 14:21 被阅读1次

1、使用itertools.dropwhile(),只要提供一个函数和一个可迭代对象即可(该函数起到过滤作用,满足条件的值都会丢弃直到有元素不满足为止)

示例:文件开头有一些注释行,想跳过所有的初始注释行

with open('/etc/passwd') as f:
    for line in f:
        print(line, end='')   # 返回所有行 

import itertools
with open('/etc/passwd') as f:
    # 丢弃f中以#开头的行,直到找到一个非#开头的行为止,然后全部输出
    for line in itertools.dropwhile(lambda line: line.startswith('#'), f):
        print(line, end='') 

2、如果恰好知道要跳过多少个元素,那么可以使用itertools.islice()

items = [1, 3, 3, 4, 5]
for x in itertools.islice(items, 3, None):  # 筛选出前三个元素之外的所有元素
    print(x)

总结:
1、只丢弃可迭代对象中前一部分元素和对全部元素可进行过滤是有所区别的:

with open('/etc/passwd') as f:  # 丢失文件中所有的以'#'开头的行
    lines = (line for line in f if not line.startswith('#'))
    for line in lines:
        print(line)

2、本文所展示的技术可适用于所有的可迭代对象(包括序列、生成器、文件等)。

相关文章

  • itertools.dropwhile() --跳过可迭代对象中

    1、使用itertools.dropwhile(),只要提供一个函数和一个可迭代对象即可(该函数起到过滤作用,满足...

  • 《Python cookbook》读书笔记三

    itertools.dropwhile() 函数。使用时,你给它传递一个函数对象和一个可迭代对象。它会返回一个迭代...

  • Python进阶 - 高性能计算之协程

    迭代器 可迭代对象 什么是可迭代对象 可迭代对象就是对象的类中实现了__iter__方法的对象。对于可迭代对象,可...

  • 生成器与迭代器

    一:可迭代对象(Iterable) 1、什么叫可迭代对象? 2、python中那些是可迭代对象 二:迭代器(Ite...

  • python迭代器、生成器与装饰器

    可迭代对象与迭代器 可迭代对象 可以直接作用于for循环的对象统称为可迭代对象,代码中可以通过isinstance...

  • Python中的可迭代对象和迭代器对象

    Python中的可迭代对象和迭代器对象是两种不同的东西,可迭代对象是Iterable,迭代器对象是Iterator...

  • 迭代器

    一、迭代器可迭代的(可迭代对象):可迭代对象都是可迭代的。如:str、list、dict、tuple、文件对象等等...

  • Python迭代器、生成器及yield关键字

    一、迭代 迭代:从对象中,逐个获取元素的过程。 可迭代对象理解:可以进行迭代操作的对象;定义:含有 __iter_...

  • Python-迭代器和可迭代对象

    可迭代对象(iterable) ​ 在之前学过的容器中,许多容器都是可迭代对象,可以直接用于for...in....

  • 迭代机制

    可迭代对象、迭代器、生成器、生成式区别 a. 可迭代对象: 一个对象能够被迭代的使用,这个对象就是可迭代对象 b....

网友评论

    本文标题:itertools.dropwhile() --跳过可迭代对象中

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