【发布时间】:2022-01-22 07:30:36
【问题描述】:
我遍历一个列表,在某些情况下我想跳过一些元素。一个典型的例子是我输出文件中的行,然后不输出特定行之间的行,最后输出其余的。
我想要实现的示例(代码无法按预期工作):
mylist = list(range(10))
for entry in mylist:
if entry == 5:
while entry < 8:
next(mylist) # ← this is the line I want to address
else:
print(entry)
我对输出的期望是 0 到 5,然后是 5 和 8,最后是 9。
我得到的例外是TypeError: 'list' object is not an iterator(我以为是)。
有没有直接跳过迭代器条目的方法?
【问题讨论】:
-
@MichaelSzczesny:谢谢。我了解
next(mylist)将如何跳过条目5,但我看不到如何在一个会跳过几行的循环中运行此next(直到满足条件 - 在我的情况下为entry => 8。