如何从python对象列表中获取唯一值

如何从python对象列表中获取唯一值,python,list,Python,List,我有一门课: class Car: make model year 我有一份汽车清单,想在我的汽车中得到一份独特车型的清单 该列表可能包含数万个项目。最好的方法是什么 谢谢。请使用一个。集合是唯一元素的无序集合,这意味着任何重复项都将被删除 cars = [...] # A list of Car objects. models = {car.model for car in cars} 这将遍历您的列表cars,并最多添加一次eachcar.model值,这意味着

我有一门课:

class Car:
    make
    model
    year
我有一份汽车清单,想在我的汽车中得到一份独特车型的清单

该列表可能包含数万个项目。最好的方法是什么

谢谢。

请使用一个。集合是唯一元素的无序集合,这意味着任何重复项都将被删除

cars = [...] # A list of Car objects.

models = {car.model for car in cars}

这将遍历您的列表
cars
,并最多添加一次each
car.model
值,这意味着它将是一个唯一的集合。

如果要查找只出现一次的汽车:

from collections import Counter
car_list = ["ford","toyota","toyota","honda"]
c = Counter(car_list)
cars = [model for model in c if c[model] == 1 ]
print cars
['honda', 'ford']

现在这取决于你所说的独特性。如果您指的是完全相同的对象,那么这应该可以:

def check_all_objects_unique(objects: List[Any]) -> bool:
unique_objects = set(objects)
if len(unique_objects) == len(objects):
    return True
elif len(unique_objects) < len(objects):
    return False
def check\u all\u objects\u unique(objects:List[Any])->bool:
唯一对象=集合(对象)
如果len(唯一对象)=len(对象):
返回真值
elif len(唯一对象)

如果“唯一”是指具有相同属性值的对象,那么此处的其他答案将对您有所帮助。

向类中添加一个返回唯一列表的方法

models=[]
models.extend(car.model for car in cars)
models=list(set(models))
def unique(list1):
    # intilize a null list
    unique_list = []

    # traverse for all elements
    for x in list1:
        # check if exists in unique_list or not
        if x not in unique_list:
            unique_list.append(x)

    return unique_list
否则,


如果你想通过make,model year的字典,那么你可以使用pandas dataframe来获得唯一的值。

你的意思是只在列表中出现一次的型号,还是将列表缩短为每个型号只有一个?我想建立一个集合?另外:我不确定这是重复的,OP可能希望找到dup不会出现的仅出现一次的模型solve@PadraicCunningham:好观点..是的,我读的不一样(因为OP想要他拥有的一套独特的模型)。希望他们能回答并澄清:)+1:要么这就是OP想要的答案,要么这只是50个其他问题的复制品。许多人发现卷发可以阅读——它们看起来像字典。在这种情况下,作为另一种选择,
models=list(set([car.model for cars In cars])
你为摆脱卷发付出了相当大的代价,不是吗?是的,我认为这是因为首先你创建了完整的列表(带有重复项),然后你将其添加到一个集合中(意味着你删除了重复项)然后你把它放回一个列表。把你的时钟周期反馈给反卷曲之神…你不回答这个问题。这只是检查是否所有元素都是唯一的,并且在这一点上是非常糟糕的。只需
返回len(唯一对象)=len(对象)