如何检查数组中的任何字符串是否存在于另一个字符串中?
例如:
a = ['a', 'b', 'c']
s = "a123"
if a in s:
print("some of the strings found in s")
else:
print("no strings found in s")
我如何替换如果a在s:行得到适当的结果?
如何检查数组中的任何字符串是否存在于另一个字符串中?
例如:
a = ['a', 'b', 'c']
s = "a123"
if a in s:
print("some of the strings found in s")
else:
print("no strings found in s")
我如何替换如果a在s:行得到适当的结果?
当前回答
的元素上进行迭代。
a = ['a', 'b', 'c']
str = "a123"
found_a_string = False
for item in a:
if item in str:
found_a_string = True
if found_a_string:
print "found a match"
else:
print "no match found"
其他回答
你可以使用任何:
a_string = "A string is more than its parts!"
matches = ["more", "wholesome", "milk"]
if any([x in a_string for x in matches]):
类似地,要检查是否找到列表中的所有字符串,请使用all而不是any。
flog = open('test.txt', 'r')
flogLines = flog.readlines()
strlist = ['SUCCESS', 'Done','SUCCESSFUL']
res = False
for line in flogLines:
for fstr in strlist:
if line.find(fstr) != -1:
print('found')
res = True
if res:
print('res true')
else:
print('res false')
data = "firstName and favoriteFood"
mandatory_fields = ['firstName', 'lastName', 'age']
# for each
for field in mandatory_fields:
if field not in data:
print("Error, missing req field {0}".format(field));
# still fine, multiple if statements
if ('firstName' not in data or
'lastName' not in data or
'age' not in data):
print("Error, missing a req field");
# not very readable, list comprehension
missing_fields = [x for x in mandatory_fields if x not in data]
if (len(missing_fields)>0):
print("Error, missing fields {0}".format(", ".join(missing_fields)));
如果a或str中的字符串变长,您应该小心。简单的解决方案是O(S*(A^2)),其中S是str的长度,A是A中所有字符串长度的总和。要获得更快的解决方案,请查看用于字符串匹配的Aho-Corasick算法,该算法在线性时间O(S+A)内运行。
的元素上进行迭代。
a = ['a', 'b', 'c']
str = "a123"
found_a_string = False
for item in a:
if item in str:
found_a_string = True
if found_a_string:
print "found a match"
else:
print "no match found"