Python 如果满足条件,则仅执行一次循环
我想知道是否有一种类似python的方法来编写与下面的代码等价的代码,而不将Python 如果满足条件,则仅执行一次循环,python,Python,我想知道是否有一种类似python的方法来编写与下面的代码等价的代码,而不将doSomething定义为一个单独的函数 if test: for i in s: doSomething() else: doSomething() 特别是,我想到的用例是test检查s是否存在 有什么建议吗?您可以这样做: 对于i in(s if test else[False]): doSomething() 如果s存在,您希望执行dosomething一次,否则执行len次 f
doSomething
定义为一个单独的函数
if test:
for i in s:
doSomething()
else:
doSomething()
特别是,我想到的用例是test
检查s
是否存在
有什么建议吗?您可以这样做:
对于i in(s if test else[False]):
doSomething()
如果s
存在,您希望执行dosomething
一次,否则执行len
次
for i in s if test else [0]:
dosomething()
可迭代表达式是一个三元表达式:
s if test else [0]
else
值可以是单个元素的任意序列;由于您实际上没有为dosomething
使用i
值,因此它也可能更清楚:
limit = len(s) if test else 1
for i in range(limit):
dosomething()
我没有投反对票,但这可能有助于澄清用例。我更喜欢你的代码,而不是这两个答案中的任何一个。更容易理解它应该做什么。更好的是,@iota?
[0]
也可以工作。