Python 基于条件的循环范围

Python 基于条件的循环范围,python,if-statement,for-loop,Python,If Statement,For Loop,我想说的是: if switch == True: for i in range(5): # stuff() else: for i in range(10): # stuff() 有没有一种更像python的方法呢?将其与一个: 这里不需要测试==True;如果你已经为你做了这件事 更具可读性的方法是将结束值分离到一个变量中: end = 5 if switch else 10 for i in range(end): # do som

我想说的是:

if switch == True:
    for i in range(5):
        # stuff()
else:
    for i in range(10):
        # stuff()
有没有一种更像python的方法呢?

将其与一个:

这里不需要测试==True;如果你已经为你做了这件事

更具可读性的方法是将结束值分离到一个变量中:

end = 5 if switch else 10
for i in range(end):
    # do something with i

使用if/else的内联简短形式:


如果循环的整个主体只是一个微不足道的函数调用,那么在这里你真的没有以任何重要的方式重复你自己。如果循环体又长又复杂……那么,你总是可以把它分解成一个函数。因此,虽然可能有……更简短或更可读的解决方案,但这一个一开始并没有那么糟糕。
end = 5 if switch else 10
for i in range(end):
    # do something with i
for i in range(5 if switch else 10):
    # stuff()