我有一般的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'
答案 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循环。