Let us get our hands on the Python list with the more amazing problem to solve.
Method 1: Using a new list and “not in” keyword
def unique_list(lst_of_elements): num = [] for a in lst_of_elements: if a not in num: num.append(a) print("The list of unique elements is: ",num) lst_of_elements = [] n = int(input("Enter number of elements : ")) for i in range(0, n): ele = int(input()) lst_of_elements.append(ele) print("The list entered by user : ", lst_of_elements) unique_list(lst_of_elements)
Output:
Enter number of elements : 6
1
2
2
3
3
5
The list entered by users : [1, 2, 2, 3, 3, 5]
The list of unique elements is: [1, 2, 3, 5]
Explanation:
We initially took the number of elements the user is going to enter into the list. We then appended these elements to the list. This list lst_of_elements is then passed on to a unique_list function. Inside this function, we declared a new empty list named num. Now run a for loop, that will add all those elements in the num list that are not there. In order to check this, we used the Python keyword named not in.
Method 2: Using a set
def unique_element(lst_of_elements): list_set = set(lst_of_elements) unique_list = (list(list_set)) for x in unique_list: print(x, ",\b") lst_of_elements = [] n = int(input("Enter number of elements : ")) for i in range(0, n): ele = int(input()) lst_of_elements.append(ele) print("The list entered by user : ", lst_of_elements) print("the unique values from the entered list is") unique_element(lst_of_elements)
Explanation:
Here we converted the list to the set. The set() function in Python takes the unique element only. Now that we have converted the list to a set and finally we have all the unique elements, we again convert the set to a list and run a for loop to print all those elements.
Method 3: Using the numpy library
import numpy def unique_element(lst_of_elements): x = numpy.array(lst_of_elements) print(numpy.unique(x)) lst_of_elements = [] n = int(input("Enter number of elements : ")) for i in range(0, n): ele = int(input()) lst_of_elements.append(ele) print("The list entered by user : ", lst_of_elements) print("the unique values from the entered list is") unique_element(lst_of_elements)
Explanation:
Here we simply used the unique() function of the NumPy library. This is one of the simplest methods that we can use.
Method 4: Using the counter()
from collections import Counter def unique_element(lst_of_elements): print(*Counter(lst_of_elements)) lst_of_elements = [] n = int(input("Enter number of elements : ")) for i in range(0, n): ele = int(input()) lst_of_elements.append(ele) print("The list entered by user : ", lst_of_elements) print("the unique values from the entered list is") unique_element(lst_of_elements)
Explanation:
We imported a library named collections and use the counter(). Python’s Counter subclass of dict is created specifically for counting hashable items. It is a dictionary where numbers are the values and objects are the keys. You normally pass a series or iterable of hashable objects as an input to the class’ function object when using Counter.
Method 5: Using the reduce() and lambda
from functools import reduce def unique_element(lst_of_elements): ans = reduce(lambda re, x: re+[x] if x not in re else re, lst_of_elements, []) print(ans) lst_of_elements = [] n = int(input("Enter number of elements : ")) for i in range(0, n): ele = int(input()) lst_of_elements.append(ele) print("The list entered by user : ", lst_of_elements) print("the unique values from the entered list is") unique_element(lst_of_elements)
Explanation:
reduce() functools library is one of the ways we can solve this problem. We used a lambda function. re is the name of our function. x is the argument and re+[x] is our expression. We check for an element, if not in re then we add it in re. Then finally reduce it.
We saw overall 5 methods to solve the above-stated problem. Think about yours and comment here.