我有两个只包含字符串的集合,我正在尝试编写如下函数:
def belongs(setA, setB):
return True/False
定义:如果一个set,假设setB有一个项目包含(string包含)一个项目在 setA 中,然后我调用 setB belongs 到 setA。一些例子:
setA = set(['apple', 'banana', 'strawberry'])
set1 = set(['abcc', 'xyz', 'klm']) # does not belong to setA
set2 = set(['app', 'banaba', 'baba']) # does not belong to setA
set3 = set(['apples', 'xyz']) # belongs to setA
set4 = set(['bananaaa', 'hello', 'world', 'stack']) # belongs to setA
我当前的代码:
def belongs(set1, set2):
for i in set1:
for j in set2:
if i in j:
return True
return False
是否有更好/更 Pythonic 的方式来做同样的事情?
请您参考如下方法:
编写函数:
def belongs(set1, set2):
return any(s1 in s2 for s1 in set1 for s2 in set2)
并测试它:
assert not belongs(setA, set1)
assert not belongs(setA, set2)
assert belongs(setA, set3)
assert belongs(setA, set4)
