[英]List of objects with a unique attribute
我有一个对象列表,每个对象都有一个特定的属性。 该属性不是唯一的,我想最终得到一个对象列表,这些对象是整个列表的一个子集,这样所有特定属性都是唯一的集合。
例如,如果我有四个对象:
object1.thing = 1
object2.thing = 2
object3.thing = 3
object4.thing = 2
我想最终得到两者
[object1, object2, object3]
要么
[object1, object3, object4]
在最终列表中出现的确切对象并不重要,只有它们的特定属性列表是唯一的。
编辑:为了澄清,基本上我想要的是一个键入该特定属性的集合。
您可以使用list comprehension
并set
:
objects = (object1,object2,object3,object4)
seen = set()
unique = [obj for obj in objects if obj.thing not in seen and not seen.add(obj.thing)]
上面的代码相当于:
seen = set()
unique = []
for obj in objects:
if obj.thing not in seen:
unique.append(obj)
seen.add(obj.thing)
你可以创建一个dict,其关键是对象的东西,值是对象本身。
d = {}
for obj in object_list:
d[obj.thing] = obj
desired_list = d.values()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.