基于条件的循环范围

i_a*_*hon 0 python for-loop if-statement

我想说的是:

if switch == True:
    for i in range(5):
        # stuff()
else:
    for i in range(10):
        # stuff()
Run Code Online (Sandbox Code Playgroud)

有更多的Pythonic方式吗?

Mar*_*ers 8

将其与一个条件表达式合并为一个:

for i in range(5 if switch else 10):
    # do something with i
Run Code Online (Sandbox Code Playgroud)

你不需要在== True这里测试; if 已经为你做了这件事.

更可读的是将结束值分离为变量:

end = 5 if switch else 10
for i in range(end):
    # do something with i
Run Code Online (Sandbox Code Playgroud)