多个if语句与Loop

时间:2019-06-26 01:54:12

标签: python for-loop

我有一般的python最佳实践问题。下面的代码返回相同的输出,但是推荐使用哪种样式更高效。

if val1 in string1:
    return 'Yes'
if val2 in string1:
    return 'Yes'
if val3 in string1:
    return 'Yes'

lists=[val1,val2,val3]
for l in lists:
    if l in string1:
        return 'Yes'

if val1 in string1 or val2 in string1 or val3 in string1:
    return 'Yes'

3 个答案:

答案 0 :(得分:5)

我会选择选项D。

if any(val in string1 for val in [val1, val2, val3]):
    return 'Yes'

答案 1 :(得分:2)

完全取决于上下文

第一个选项肯定有很多冗余代码,并且如果要检查的 val (val4 ...)数量增加,扩展性将不佳

如果您认为您将始终只检查3个值(val1,val2,val3),则解决方案三个看起来更干净

但是建议使用第二种方法。如果您认为可以检查更多值,则可以轻松地将条目添加到数组/列表并对其进行迭代。

答案 2 :(得分:2)

我可能建议使用for循环,因为该语法对于大多数初学者来说都是可读的,而且简短。如果要添加更多或删除更多项目,可以轻松地编辑for循环。