如何创建用于递归生成迭代函数的函数



我目前有一些Python代码,看起来像这样:

for set_k in data:
    for tup_j in set_k:
        for tup_l in tup_j:

问题是,我希望嵌套语句的数量根据用户输入而有所不同。如果我想创建一个为上述语句生成 n 个函数,我该怎么做呢?

def nfor(data, n=1):
    if n == 1:
        yield from iter(data)
    else:
        for element in data:
            yield from nfor(element, n=n-1)

演示:

>>> 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

相关内容

  • 没有找到相关文章

最新更新