Skip to main content
 首页 » 编程设计

python之试图查找字符串是否在对象列表中

2025年05月04日25findumars

我不确定这是否可能,因为在网上查找和回答时遇到问题,可能是因为我不知道必须解决这个问题。所以下面的代码是我正在尝试做的一个基本示例。

class Names(): 
    def __init__(self, name): 
        self.name = name 
    def __repr__(self): 
        return self.name 
 
>>> i = [] 
>>> i.append(Names("bob")) 
>>> i.append(Names("jill")) 
>>> i 
[bob, jill] 
>>> "bob" in i 
False 

我有一个 Name 类的列表,如果名称已经存在,我想返回 True。如果知道如何让这个工作?

请您参考如下方法:

有几种方法可以做到这一点。

最简单的方法是使用 any 进行迭代:

any(item.name == 'bob' for item in i) 

更复杂的版本是在你的类上定义一个__eq__方法:

def __eq__(self, val): 
    return self.name == val 

现在你原来的 "bob"in i 代码可以工作了。

(对于实际代码,如果您位于两个 Names 实例之间,您可能希望 checkin 该方法,而不是使用字符串。)