This tutorial will discuss about unique ways to check if all elements in a list are unique in Python.
Table Of Contents
Method 1: Using Set
In this solution we are going to use the Set
Data Structure of Python. A Set
in Python contains only unique elements. So, we can initialise a Set with the list contents, and after that we can compare the size of Set and List. If both set and list have equal number of elements, then it means that the given list has only unique elements. We have created a function for this,
def all_unique(listObj): '''Returns True if list has no duplicates''' return len(listObj) == len(set(listObj))
It accepts a list as an argument, and returns True
, if given list has no duplicates i.e. if all elements in List are unique. To initialise a Set with the list contents, we can just pass the list to the set()
function, and it will give us a Set object initialised with the list contents. If list has any duplicate element, then it will not be added in the Set. Therefore, to confirm if all elements in list are unique, we can compare the size of list and set.
Let’s see the complete example,
def all_unique(listObj): '''Returns True if list has no duplicates''' return len(listObj) == len(set(listObj)) # Example 1 numbers = [34, 23, 56, 73, 78, 11] if all_unique(numbers): print("All elements in list are unique") else: print("All elements in list are not unique") # Example 2 numbers = [34, 23, 34, 73, 34, 11] if all_unique(numbers): print("All elements in list are unique") else: print("All elements in list are not unique")
Output
All elements in list are unique All elements in list are not unique
Method 2: Using Dictionary
In this solution we are going to use the Dictionary
Data Structure of Python.
Frequently Asked:
A Dictionary in Python can have unique keys only. So, we can iterate over all the elements of list and add them as keys in the dictionary. But before adding them, we can check if the given element already exists in dictionary as a key or not. If yes, then it means that it is a duplicate element. We have created a function to check if all elements in list are unique or not.
def only_unique(listObj): '''Returns True if all elements in list are unique''' result = True # Create a dictionary dictObj = {} # Loope over list elements for elem in listObj: # check if list element exist in dict as key if elem in dictObj: result = False break else: # Add list element in the dictionary as key dictObj[elem] = True return result
It accepts a list as an argument, and returns True
if given list has no duplicates i.e. if all elements in List are unique.
Let’s see the complete example,
def only_unique(listObj): '''Returns True if all elements in list are unique''' result = True # Create a dictionary dictObj = {} # Loope over list elements for elem in listObj: # check if list element exist in dict as key if elem in dictObj: result = False break else: # Add list element in the dictionary as key dictObj[elem] = True return result # Example 1 numbers = [34, 23, 56, 73, 78, 11] if only_unique(numbers): print("All elements in list are unique") else: print("All elements in list are not unique") # Example 2 numbers = [34, 23, 34, 73, 34, 11] if only_unique(numbers): print("All elements in list are unique") else: print("All elements in list are not unique")
Output
All elements in list are unique All elements in list are not unique
Summary
We learned about different ways to check if a list has any duplicate element or if all elements in list are unique. Thanks.