I have the code
for iline, line in enumerate(lines):
...
if :
I would like, as you c
Similar to the accepted answer… except without using itertools (IMHO islice doesn't improve readability), plus enumerate() already returns an iterator so you don't need the iter() at all:
lines = [{str(x): x} for x in range(20)] # dummy data
it = enumerate(lines)
for i, line in it:
print(line)
if i == 10: # condition using enumeration index
[next(it, None) for _ in range(5)] # skip 5
That last line can optionally be expanded for readability:
for _ in range(5): # skip 5
next(it, None)
The None argument in next() avoids an exception if there aren't enough items to skip. (For the original question, it can be omitted as the OP wrote: "I can be sure that, if the condition is met, there are 5 or more objects left in the lines object.")
If the skip condition isn't based on the enumeration index, simply treat the list as a FIFO queue and consume from it using pop():
lines = [{str(x): x} for x in range(20)] # dummy data
while lines:
line = lines.pop(0) # get first item
print(line)
if : # some other kind of condition
[lines.pop(0) for _ in range(5)] # skip 5
As before, that last line can optionally be expanded for readability:
for _ in range(5): # skip 5
lines.pop(0)
(For large lists, use collections.deque for performance.)