I currently have a bit of Python code that looks like this:
for set_k in data:
for tup_j in set_k:
for tup_l in tup_j:
The problem is, I'd like the number of nested for statements to differ based on user input. If I wanted to create a function which generated n number of for statements like those above, how might I go about doing that?
def nfor(data, n=1):
if n == 1:
yield from iter(data)
else:
for element in data:
yield from nfor(element, n=n-1)
Demo:
>>> for i in nfor(['ab', 'c'], n=1):
... print(i)
...
ab
c
>>> for i in nfor(['ab', 'c'], n=2):
... print(i)
...
a
b
c
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With