0

我有一般的 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'
4

3 回答 3

5

我会选择选项D。

if any(val in string1 for val in [val1, val2, val3]):
    return 'Yes'
于 2019-06-26T01:59:51.803 回答
2

完全取决于上下文

第一个选项肯定有很多冗余代码,如果您要检查的 val (val4 ...) 数量增加则无法很好地扩展

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

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

于 2019-06-26T02:03:50.380 回答
1

我可能会推荐使用 for 循环,因为大多数初学者都可以阅读语法并且它很短。如果您想添加更多或删除更多项目,您可以轻松编辑 for 循环。

于 2019-06-26T02:17:25.340 回答