Skip to main content
 首页 » 编程设计

python之根据对象属性唯一化对象列表的最快方法

2025年05月04日9lyhabc

我目前通过创建一个名称值作为字典键的对象字典来根据对象的名称属性统一对象列表,如下所示:

obj_dict = dict() 
 
for obj in obj_list: 
    if not obj.name in obj_dict: 
        obj_dict[obj.name] = obj 
 
new_obj_list = obj_dict.items() 

我想知道是否有更快或更 pythonic 的方法来做到这一点。

请您参考如下方法:

如果两个具有相同名称的对象应该始终被认为是相同的,您可以相应地实现 __eq__ 和 __hash__。那么您的解决方案就像将所有对象存储在 set() 中一样简单:

new_obj_list = list(set(obj_list)) 

将列表转换回集合可能甚至没有必要,因为顺序无论如何都会丢失,所以除非您需要对它做一些只适用于列表但不适用于集合的事情,否则请继续使用集合。