1

Is there a neater way than following to restrict number of items from a generator?

def next_dummy_item():
    for i in range(1, 10):
        yield i

item_count = 0
for item in next_dummy_item(): # can't use slicing here :(
  item_count += 1             
  # process item
  if item_count > 5:
    break
comiventor
  • 3,922
  • 5
  • 50
  • 77

1 Answers1

2

Using itertools.islice:

def next_dummy_item():
    for i in range(1, 10):
        yield i

for item in itertools.islice(next_dummy_item(), 5):
    # process item
falsetru
  • 357,413
  • 63
  • 732
  • 636