Contando el número de valores únicos en una lista de Python

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

Publicación traducida automáticamente

Artículo escrito por Yash_R y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *