Python中Yield的替代方法

2024-09-30 08:24:27 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有其他方法(即使更长)来编写这段代码的yield部分?我对这个函数不太熟悉,希望它保持简单。在

for i in range(0, len(lstInput) - intCount + 1):
    if intCount == 1:
        yield [lstInput[i]]
    else:
        current = lstInput[i]
        remainder = lstInput[i+1:]
        for rest in yieldLotto(remainder, intCount - 1):
            yield [current] + rest

Tags: 方法函数代码inrestforlenif
1条回答
网友
1楼 · 发布于 2024-09-30 08:24:27

另一种方法是将循环嵌入到调用程序中,或者将其更改为返回列表。这意味着一切都将进入记忆。在

def foo():
    return_list = []
    for i in range(0, len(lstInput) - intCount + 1):
        if intCount == 1:
            return_list.append([lstInput[i]])
        else:
            current = lstInput[i]
            remainder = lstInput[i+1:]
            for rest in yieldLotto(remainder, intCount - 1):
                return_list.append([current] + rest)
    return return_list

不过,老实说,我认为yield更好,这是Python的一个重要特性。我建议你去学。在

相关问题 更多 >

    热门问题