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))
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))
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