我想知道python是否具有类似条件代码解释的功能。像这样:
x = True
if x:
for i in range(0, 10):
else:
for i in range(0, 100):
# ------------------------------
print(i) # this is the code inside either one these for loop heads
我知道我可以做到:
x = True
if x:
for i in range(0, 10):
print(i)
else:
for i in range(0, 100):
print(i)
但是就我而言,我有很多for循环代码,但这并不是一个很好的解决方案。
答案 0 :(得分:3)
您可以随时这样做:
x = True
for i in range(0,10) if x else range(0, 100):
print(i)
答案 1 :(得分:1)
否,它没有该语法。不过,您可以通过其他方式实现相同的目标。
例如,从公共部分(10
循环)中提取变化部分(100
与for in range(...)
):
limit = 10 if x else 100
for i in range(limit):
print(i)
或将两个不同范围之一保存在变量中并对其进行循环:
numbers = range(0, 10) if x else range(0, 100)
for i in numbers:
print(i)
或将循环提取到在每次迭代中执行任意操作的函数:
def loop(limit, action):
for i in range(limit):
action(i)
loop(10 if x else 100, lambda i: print(i))
答案 2 :(得分:0)
如果您愿意,可以这样做。
x = True
for i in range(0, (10 if x else 20)):
print(i)
这里的if else语句像这样result_if_true if condition else result_if_false
。
答案 3 :(得分:0)
if x:
my_iter = range(0, 10)
else:
my_iter = range(0, 100)
for i in my_iter:
print(i)