2024-10-04 05:31:08 发布
网友
假设我有一个字符串数组a=['abcbdefcd']和另一个字符串数组 T=['ab'、'abc'、'def'、'cd'、'abcd']
我想写一个函数,可以搜索数组a,如果它在T中找到一个在a中的字符串,则返回true或false
我想我会试试的
for text in A: if text in T: print (true)else: print(false)
for text in A: if text in T: print (true)
else:
print(false)
但这并没有给我我想要的,有人能提出别的建议吗
如果我正确理解了这个问题,你基本上需要找到两个列表的交集。如果列表T包含也存在于列表A中的元素,则返回true,否则返回false
要做到这一点,你有各种各样的Python解决方案:
方法1:
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)
最后,您可以使用冻结集的不相交方法:
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
if text in t[0]
这应该达到你想要的
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')
如果我正确理解了这个问题,你基本上需要找到两个列表的交集。如果列表T包含也存在于列表A中的元素,则返回true,否则返回false
要做到这一点,你有各种各样的Python解决方案:
方法1:
试试这样的
另一种方法是使用生成器表达式对列表执行迭代:
最后,您可以使用冻结集的不相交方法:
对于您的具体要求:
输出:
注意事项:
if text in t
而不是if text in t[0]
这应该达到你想要的
相关问题 更多 >
编程相关推荐