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

我想知道是否有一种类似python的方法来编写与下面的代码等价的代码,而不将
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]
也可以工作。