Python: lista de índices de frecuencia de valores

A veces, mientras trabajamos con tuplas de Python, podemos tener un problema en el que necesitamos extraer la frecuencia de cada valor en la tupla. Esto ha sido resuelto anteriormente. Podemos tener una modificación en la que necesitamos crear una lista en la que el índice represente la clave y el valor represente la frecuencia de ese número de índice. Este tipo de problema puede tener aplicaciones en el dominio de la programación competitiva. Analicemos ciertas formas en las que necesitamos resolver este problema.

Entrada : test_list = [(‘Gfg’, 1), (‘is’, 1), (‘best’, 1), (‘for’, 1), (‘geeks’, 1)]
Salida : [0, 5, 0, 0, 0, 0]

Entrada : test_list = [(‘Gfg’, 5), (‘is’, 5)]
Salida : [0, 0, 0, 0, 0, 2]

Método n.º 1: Uso del bucle
Este es un enfoque de fuerza bruta mediante el cual se puede realizar esta tarea. En esto, realizamos la tarea de asignar frecuencia iterando y asignando una lista preiniciada.

# Python3 code to demonstrate working of 
# Values Frequency Index List
# Using loop
  
# initializing list
test_list = [('Gfg', 3), ('is', 3), ('best', 1), ('for', 5), ('geeks', 1)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Values Frequency Index List
# Using loop
res = [0 for _ in range(6)]
for ele in test_list:
    res[ele[1]] = res[ele[1]] + 1
  
# printing result 
print("The Frequency list : " + str(res)) 
Producción :

The original list is : [('Gfg', 3), ('is', 3), ('best', 1), ('for', 5), ('geeks', 1)]
The Frequency list : [0, 2, 0, 2, 0, 1]

Método #2: Uso Counter()de la comprensión de lista +
La combinación de las funcionalidades anteriores se utiliza para resolver este problema. En esto, realizamos la tarea de calcular las frecuencias usando Counter() y la representación en la lista se realiza por comprensión de la lista.

# Python3 code to demonstrate working of 
# Values Frequency Index List
# Using Counter() + list comprehension
from collections import Counter
  
# initializing list
test_list = [('Gfg', 3), ('is', 3), ('best', 1), ('for', 5), ('geeks', 1)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Values Frequency Index List
# Using Counter() + list comprehension
cntr = Counter(ele[1] for ele in test_list)
res = [cntr[idx] for idx in range(6)]
  
# printing result 
print("The Frequency list : " + str(res)) 
Producción :

The original list is : [('Gfg', 3), ('is', 3), ('best', 1), ('for', 5), ('geeks', 1)]
The Frequency list : [0, 2, 0, 2, 0, 1]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 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 *