如何缩短(Pythonic)?

Pol*_*Pol 8 python

我必须检查很多世界,如果他们在字符串...代码看起来像:

if "string_1" in var_string or "string_2" in var_string or "string_3" in var_string or "string_n" in var_string:
    do_something()
Run Code Online (Sandbox Code Playgroud)

如何让它更具可读性和更清晰?

Fel*_*ing 35

这是一种方式:

words = ['string_1', 'string_2', ...]

if any(word in var_string for word in words):
    do_something()
Run Code Online (Sandbox Code Playgroud)

参考: any()

更新:

为了完整性,如果只想在字符串中包含所有单词时执行该函数,则可以使用all()而不是any().

另请注意,此构造不会执行任何不必要的计算,因为any如果遇到true值并且生成器表达式用于创建布尔值,则会返回.因此,您还可以在评估布尔表达式时使用某种短路评估.