使用Python,我如何检查`if或`语句中哪个对象返回'True`?

时间:2014-04-23 09:33:35

标签: python list select if-statement

if mo.exists() or ao.exists():
        for d in [mo,ao]

我不想浏览列表中的两个对象,只返回返回True的对象。 似乎无法解决这个问题?

由于

4 个答案:

答案 0 :(得分:4)

创建一个这样的生成器表达式,并过滤为True调用返回exists()的对象,

for item in (obj for obj in (mo, ao) if obj.exists()):
    ...

答案 1 :(得分:1)

res=[d for d in [mo,ao] if d.exists()]
for r in res:

捕获res列表中的所有True并迭代res。

答案 2 :(得分:0)

只需将if声明分开:

if mo.exists():
    for d in mo:
        #do stuff
elif ao.exists():
    for d in ao:
        #do other stuff

答案 3 :(得分:0)

试试这个,

if mo.exists() or ao.exists():
    if not mo:
       for d in ao:
          #do 
    else:
       for d in mo:
          #do