说我有一个字符串数组A = ['abcbdefcd']和另一个字符串数组 T = ['ab','abc','def','cd','abcd']
我想编写一个可以搜索数组A的函数,如果它在A中的T中找到一个字符串,则返回true或false。
我认为我会尝试
对于A中的文本:如果T中的文本:打印(true)
其他:
print(false)
但这不能满足我的需求,有人可以提出其他建议吗?
答案 0 :(得分:1)
这应该可以满足您的需求
A = ['abcbdefcd']
T = ['ab', 'abc', 'def', 'cd', 'abcd']
result = False
for text in A:
for sub_text in T:
if (sub_text in text):
result = True
break
if (result):
print('True')
else:
print('False')
答案 1 :(得分:1)
如果我正确理解了这个问题,那么您基本上想找到2个列表的交集。如果列表T包含列表A中也存在的元素,则返回true,否则返回false。
要做到这一点,您可以使用多种pythonic解决方案:
方法1 :
pattern('[regex]')->replace($bar)->callback('name');
即。尝试这样的事情。
bool(set(a) & set(b))
另一种方法是通过使用生成器表达式对列表执行迭代来完成的:
a = ['abc','bca','av']
b = ['ab','bc']
print(bool(set(a) & set(b))) # this would return true in this case
最后,您可以使用冻结集的不相交方法:
a = set(a); any(i in a for i in b)
答案 2 :(得分:1)
对于您的特定请求:
not set(a).isdisjoint(b)
输出:
a = ['abcbdefcd']
t = ['ab', 'abc', 'def', 'cd', 'abcd']
for text in t:
print(text in a[0])
一些注意事项:
True
True
True
True
False
而不是if text in t