簡體   English   中英

具有唯一屬性的對象列表

[英]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 comprehensionset

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM