Veamos cómo contar el número de valores únicos en una lista de Python.
Ejemplos:
Input : 10 20 10 30 40 40 Output : 2 Explanation : Only 2 elements, 20 and 30 are unique in the list. Input : 'geeks' 'for' 'geeks' Output : 1
Enfoque 1: Recorriendo la lista y contando la frecuencia de cada elemento usando el diccionario, finalmente contando los elementos para los cuales la frecuencia es 1.
# function to count the unique elements def count_unique(my_list): # variable to store the unique count count = 0 # creating dictionary to count frequency freq = {} # traversing the list for x in my_list: if (x in freq): freq[x] += 1 else: freq[x] = 1 # traversing the dictionary for key, value in freq.items(): if value == 1: count += 1 # displaying the count of unique elements print(count) # driver function if __name__ == "__main__": my_list = [10, 20, 10, 30, 40, 40] count_unique(my_list) my_list = ['geeks', 'for', 'geeks'] count_unique(my_list)
Producción :
2 1
Complejidad temporal : O(N)
Complejidad espacial : O(N)
Enfoque 2: aquí usaremos el get()
método de la clase de diccionario para contar la frecuencia. Esto hace que el programa sea más corto y demuestra cómo el get()
método es útil en lugar de si… si no.
# function to count the unique elements def count_unique(my_list): # variable to store the unique count count = 0 # creating dictionary to count frequency freq = {} # traversing the list for x in my_list: freq[x] = freq.get(x, 0) + 1 # traversing the dictionary for key, value in freq.items(): if value == 1: count += 1 # displaying the count of unique elements print(count) # driver function if __name__ == "__main__": my_list = [10, 20, 10, 30, 40, 40] count_unique(my_list) my_list = ['geeks', 'for', 'geeks'] count_unique(my_list)
Producción :
2 1
Complejidad temporal : O(N)
Complejidad espacial : O(N)
Enfoque 3: aquí usaremos el count()
método de la clase de lista para contar la frecuencia.
# function to count the unique elements def count_unique(my_list): # variable to store the unique count count = 0 # creating dictionary to count frequency freq = {} # traversing the list for x in my_list: freq[x] = my_list.count(x) # traversing the dictionary for key, value in freq.items(): if value == 1: count += 1 # displaying the count of unique elements print(count) # driver function if __name__ == "__main__": my_list = [10, 20, 10, 30, 40, 40] count_unique(my_list) my_list = ['geeks', 'for', 'geeks'] count_unique(my_list)
Producción :
2 1
Complejidad temporal : O(N)
Complejidad espacial : O(N)
Enfoque 4: aquí usaremos el Counter()
método del módulo de colecciones para contar la frecuencia.
# importing the module import collections # function to count the unique elements def count_unique(my_list): # variable to store the unique count count = 0 # creating dictionary to count frequency freq = collections.Counter(my_list) # traversing the dictionary for key, value in freq.items(): if value == 1: count += 1 # displaying the count of unique elements print(count) # driver function if __name__ == "__main__": my_list = [10, 20, 10, 30, 40, 40] count_unique(my_list) my_list = ['geeks', 'for', 'geeks'] count_unique(my_list)
Producción :
2 1