jon*_*opf 1 python list unique
我目前通过创建一个名称值为dict键的对象的dict来基于其名称属性取消对象列表,如下所示:
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()
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更快或更多的pythonic方式来做到这一点.
Thi*_*ter 12
如果有两个名称相同的对象应始终认为是相同的,你可以实现__eq__与__hash__相应.然后,您的解决方案就像将所有对象存储在以下内容一样简单set():
new_obj_list = list(set(obj_list))
Run Code Online (Sandbox Code Playgroud)
将列表转换回集合可能甚至没有必要,因为订单总是丢失,所以除非你需要对它做一些只适用于列表但不使用集合的东西只是继续使用集合.