问题简介
最近在优化功能时,发现需要对多个字符串是否在目标字符串中出现过做判断。
最简单的办法自然是直接for循环挨个判断,但是这样比较冗余、也不够优雅。
这里,我们可以使用Python中的any(seq)
方法来做批量判断:只要seq中任何一个对象为布尔真,就返回True;否则返回False。
当然,与之相对的自然是all(seq)
:仅当seq中所有对象均为布尔真时,返回True;否则返回False。
实现办法
常规方法
for env_name in env_names:
if env_name in target_name:
return True
return False
使用any关键字
if any(name in target_name for name in env_names):
return True
return False
还能更短
return True if any(name in target_name for name in env_names) else False