多个if语句vs循环

Eri*_*c G 0 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'
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 5

我会选择D。

if any(val in string1 for val in [val1, val2, val3]):
    return 'Yes'
Run Code Online (Sandbox Code Playgroud)