文件名称:跳过可迭代对象的开始部分-华为云大数据中台架构分享
文件大小:5.68MB
文件格式:PDF
更新时间:2024-07-01 05:00:26
Python cookbook 中文 参考
4.8 跳过可迭代对象的开始部分 问题 你想遍历一个可迭代对象,但是它开始的某些元素你并不感兴趣,想跳过它 们。 解决方案 itertools 模块中有一些函数可以完成这个任务。 首先介绍的是 itertools.dropwhile() 函数。使用时,你给它传递一个函数对象和一个可迭代对 象。 它会返回一个迭代器对象,丢弃原有序列中直到函数返回 Flase 之前的所 有元素,然后返回后面所有元素。 为了演示,假定你在读取一个开始部分是几行注释的源文件。比如: >>> with open('/etc/passwd') 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('/etc/passwd') as f: ... for line in dropwhile(lambda line: line.startswith('#'), f): ... print(line, end='') ... nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false root:*:0:0:System Administrator:/var/root:/bin/sh