我正在浏览一个有3行长记录的文本文件。如果在第一行,我可以说“这是一个我不想计数的记录”,我想移到下一个记录的开头,再往下2行。目前,我正在运行这样的代码片段:
lines = content.split("\n")
iterable = iter(xrange(len(lines)))
for i in iterable:
line = lines[i]
...
if isRecord(keyword) == False:
[iterable.next() for x in range(2)]
在文件的最后,我的理解可能会抛出一个stopIteration错误。如何添加到代码中,以便在引发stopIteration时中断for循环?我研究了列表理解中的许多条目,以及如何根据stopIteration标志构建for循环以停止,但我还不知道如何将其应用于我自己的代码。我也看到过使用if/else/for样式的列表理解,但是我可以构建一个样式类似于:
^{pr2}$衷心感谢你的帮助。在
您可以使用
itertools
获取一个切片。some_list
的长度为2、1或0,具体取决于列表的剩余量。如果列表较大,将从迭代器中删除2个项,for循环将继续下一个项。在您还可以通过这样一种方式构造iterable,即一次获得3个条目,例如使用itertools模块中的recipe
例如
^{pr2}$所以你可以这么做
或者,如果内容不是在纯3行块中格式化,那么消费配方
示例
如果您真的需要,您也可以使用
enumerate
来知道您是谁,例如相关问题 更多 >
编程相关推荐