有没有更有效的方法来处理 Python 3 中的 for 循环?

Shi*_*lax 1 python for-loop python-3.x

我有以下 for 循环,所有循环都从 1 到 8。我想知道是否所有这些都可以包含在 1 个 for 循环中。目前它不起作用的原因是因为如果您从 for 循环中断,那么它将退出所有 if 语句。

for i in range(1, 8):
    if Bool1(based on i):
        Action1
    else:
        break

for i in range(1, 8):
    if Bool2(based on i):
        Action2
    else:
        break

for i in range(1, 8):
    if Bool3(based on i):
        Action3
    else:
        break

for i in range(1, 8):
    if Bool4(based on i):
        Action4
    else:
        break

...
Run Code Online (Sandbox Code Playgroud)

zvo*_*one 5

你可以这样做:

tests_and_actions = [
    (Bool1, Action1),
    (Bool2, Action2),
    (Bool3, Action3),
    (Bool4, Action4),
    # ...
]

for test, action in tests_and_actions:
    for i in range(1, 8):
        if test(based on i):
            action()
        else:
            break
Run Code Online (Sandbox Code Playgroud)

  • @Code-Apprentice 标题和描述不够描述性,它可能意味着“高效输入”。无论如何,如果不知道代码的用途,就无法提高代码的效率。这是通用代码。 (2认同)