【发布时间】:2023-03-24 04:53:01
【问题描述】:
我在 Python 中有以下函数,我想将其转换为不使用 yield 的更普通的函数,以便将其翻译成其他语言。
有人可以解释一下我该怎么做吗?
该函数只是打印出n选择m的排列。
即对于n==4、m==2,它将创建以下形式的数组:
1001、1100、1010 等等。
def bitmasks(n, m):
if n == m:
yield (1 << n) - 1
elif m > 0:
for x in bitmasks(n-1, m-1):
yield (1 << (n-1)) + x
for x in bitmasks(n-1, m):
yield x
else:
yield 0
【问题讨论】:
标签: python recursion generator yield