Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # generic_nested.py
- def do_next(gen):
- try:
- print(next(gen))
- return gen
- except:
- return 0
- def nested_loops(n_or_indices, range_max=5):
- if isinstance(n_or_indices, list):
- indices = n_or_indices
- n = len(indices)
- else:
- n = n_or_indices
- indices = [0] * n
- while True:
- yield indices[:]
- for i in range(n - 1, -1, -1):
- if indices[i] < range_max - 1:
- indices[i] += 1
- break
- indices[i] = 0
- else:
- return
- # Example usage with next and while loop:
- gen1 = nested_loops(3)
- while gen1:
- gen1 = do_next(gen1)
- gen2 = nested_loops(4, 3)
- while gen2:
- gen2 = do_next(gen2)
- gen3 = nested_loops([0, 2, 1], 3)
- while gen3:
- gen3 = do_next(gen3)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement