【发布时间】:2011-03-24 07:20:35
【问题描述】:
如何检查数组中的任何字符串是否存在于另一个字符串中?
喜欢:
a = ['a', 'b', 'c']
str = "a123"
if a in str:
print "some of the strings found in str"
else:
print "no strings found in str"
该代码不起作用,它只是为了显示我想要实现的目标。
【问题讨论】:
-
我很惊讶在性能方面与已编译的正则表达式相比(还没有)任何答案,尤其是与要搜索的字符串的大小和“针”的数量相比。跨度>
-
@Pat 我并不感到惊讶。问题不在于性能。今天大多数程序员更关心完成它和可读性。性能问题是有效的,但问题不同。
-
将 str 用作变量会造成混淆,并且可能会导致意外行为,因为它是保留字;见link。
-
regex
[abc]也可以很好地工作,如果要测试的候选人超过几个,速度会更快。但如果字符串是任意的,并且您事先不知道它们来构造正则表达式,则必须使用any(x in str for x in a)方法。 -
@CleverGuy 你是对的,虽然它不是保留字,否则你将无法分配给它。这是一个内置的。
标签: python arrays string exists