def fun(x): for k in range(10): found = False if x < 12 and other(k): dostuff() found = True if x == 4 and other2(k): dostuff() found = True if not found: dootherstuff(k)我有这个代码。我的问题是,由于x不变,是否可以事先评估这些if语句?该代码应执行与以下操作相同的操作: def fun(x): if x == 4: for k in range(10): if other2(k): dostuff() else: dootherstuff(k) if x < 12: for k in range(10): if other(k): dostuff() else: dootherstuff(k)或者def fun(x): for k in range(10): if x == 4 and other2(k) or x < 10 and other(k): dostuff() else: dootherstuff(k)但是,由于这两个都是非常干燥且丑陋的,所以我想知道是否有更好的选择。在我的真实代码中,我有更多的语句,但是我只需要对X的某些值进行循环中的特定检查,并且我不想在每次迭代中都检查X,因为它不会改变。
2 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
认为这应该工作相同:
def fun(x):
for k in range(10);
if x < 12 and other(k):
dostuff()
elif x == 4 and other2(k):
dostuff()
else:
dootherstuff(k)
SMILET
TA贡献1796条经验 获得超4个赞
您可以执行以下操作
def fun(x):
cond1 = x < 12
cond2 = x == 4
for k in range(10):
found = False
if cond1 and other(k):
dostuff()
found = True
if cond2 and other2(k):
dostuff()
found = True
if not found:
dootherstuff(k)
添加回答
举报
0/150
提交
取消