简化"如果字符串中的var1或字符串中的var2:"在Python中

时间:2014-11-09 12:50:43

标签: python

是否比

更简单
if var1 in string or var2 in string:

我试试:

if (var1 or var2) in string:

但那不起作用......

提前致谢!

2 个答案:

答案 0 :(得分:5)

您可以使用any

if any(x in string for x in (var1, var2))

<强>任何(迭代) 如果iterable的任何元素为true,则返回True。如果iterable为空,则返回False

正如在两个vars的评论中指出的那样,你自己的解决方案就像你将得到的一样简单,但在我看来,如果你有3个或更多的vars,那么any是一个更好,更简洁的解决方案。

答案 1 :(得分:-2)

如果您愿意使用正则表达式,

import re
re.search(r'('+v1+'|'+v2+')',s)

这对你的解决方案来说看起来并不优雅,但是如果你有很多子字符串要搜索它会很有用:

import re
v = ['abc', 'drf', 'nasd', 'djk', 'po2-pe']
re.search(r'('+'|'.join(v)+')',s)