Dada una Lista, obtenga la frecuencia fraccionaria de cada elemento en cada posición.
Entrada : test_list = [4, 5, 4, 6, 7, 5, 4, 5, 4]
Salida : [‘1/4’, ‘1/3’, ‘2/4’, ‘1/1’, ‘1/1’, ‘2/3’, ‘3/4’, ‘3/3’, ‘4/4’]
Explicación : 4 ocurre 1/4 del total de ocurrencias hasta el 1er índice, y así sucesivamente.
Entrada : test_list = [4, 5, 4, 6, 7, 5]
Salida : [‘1/2’, ‘1/2’, ‘2/2’, ‘1/1’, ‘1/1’, ‘2/2’]
Explicación : 4 ocurre 1/2 del total de ocurrencias hasta el 1er índice, y así sucesivamente.
Método: Usar Counter() + bucle + comprensión de diccionario
En esto, usamos Counter() para obtener la frecuencia de cada elemento en la lista y formar parte del denominador de la fracción. El numerador se inicializa a 0 para cada elemento. Luego se usa loop para sumar los elementos en el numerador y unirlos con la frecuencia total en el denominador.
Python3
# Python3 code to demonstrate working of # Fractional Frequency of elements in List # Using Counter() + loop + dictionary comprehension from collections import Counter # initializing list test_list = [4, 5, 4, 6, 7, 5, 4, 5, 4, 6, 4, 6] # printing original list print("The original list is : " + str(test_list)) # initializing numerator number = {idx : 0 for idx in set(test_list)} # initializing denominator denom = Counter(test_list) res = [] for ele in test_list: # increasing counter number[ele] += 1 res.append(str(number[ele]) + '/' + str(denom[ele])) # printing result print("Fractional Frequency List : " + str(res))
The original list is : [4, 5, 4, 6, 7, 5, 4, 5, 4, 6, 4, 6] Fractional Frequency List : ['1/5', '1/3', '2/5', '1/3', '1/1', '2/3', '3/5', '3/3', '4/5', '2/3', '5/5', '3/3']
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