Skip to main content
 首页 » 编程设计

Pythonic 的写法属于两组函数

2025年05月04日15yxwkf

我有两个只包含字符串的集合,我正在尝试编写如下函数:

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)