如何从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
,并最多添加一次eachcar.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(对象)