I have a class:
class Car:
make
model
year
I have a list of Cars and want to get a list of unique models among my Cars.
The list is potentially tens of thousands of items. What's the best way to do this?
Thanks.
I have a class:
class Car:
make
model
year
I have a list of Cars and want to get a list of unique models among my Cars.
The list is potentially tens of thousands of items. What's the best way to do this?
Thanks.
Use a set
comprehension. Sets are unordered collections of unique elements, meaning that any duplicates will be removed.
cars = [...] # A list of Car objects.
models = {car.model for car in cars}
This will iterate over your list cars
and add the each car.model
value at most once, meaning it will be a unique collection.
Add a method to the class that returns a unique list
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
Otherwise,
If you're looking to pass a dictionary of make, model year then you can use pandas dataframe in order to get the unique values.
If you want to find cars that only appear once:
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']
Now it depends on what you mean by unique. If you mean Exactly the same object then this should work:
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
If by unique you mean objects with the same attribute values then other answers on here will help you.