Python: frecuencias acumulativas de filas en la lista

Dado Matrix, la tarea es escribir un programa Python para obtener el recuento total de ocurrencias de la fila.

Entrada : lista_prueba = [[10, 2, 3, 2, 3], [5, 5, 4, 7, 7, 4], [1, 2], [1, 1, 2, 2, 2]], ele_list = [1, 2, 7] 
Salida : [2, 2, 2, 5] 
Explicación : 2 aparece 2 veces en la fila 1 y así sucesivamente.

Entrada : test_list = [[10, 2, 3, 2, 3], [5, 5, 4, 7, 7, 4]], ele_list = [1, 2, 7] 
Salida : [2, 2] 
Explicación : 2 ocurre 2 veces en la fila 1 y así sucesivamente. 
 

Método n. ° 1: usar Counter() + comprensión de lista

En esto, realizamos la tarea de obtener todas las frecuencias de todas las filas y luego verificamos en la lista la ocurrencia del elemento requerido de la fila, sum() se usa para obtener una suma de las frecuencias extraídas en las filas.

Python3

# Python3 code to demonstrate working of 
# Cumulative Row Frequencies
# Using Counter() + list comprehension
from collections import Counter 
  
# initializing list
test_list = [[10, 2, 3, 2, 3], 
             [5, 5, 4, 7, 7, 4], 
             [1, 2], [1, 1, 2, 2, 2]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing ele_list 
ele_list = [1, 2, 7]
  
# getting each rows counter 
freqs = [Counter(ele) for ele in test_list]
  
# getting summation of present values 
res = [sum([freq[wrd] for wrd in ele_list if wrd in freq]) for freq in freqs]
  
# printing result 
print("Cumulative Frequencies : " + str(res))

Producción:

La lista original es: [[10, 2, 3, 2, 3], [5, 5, 4, 7, 7, 4], [1, 2], [1, 1, 2, 2, 2]] 
Frecuencias acumulativas: [2, 2, 2, 5]

Método #2: Usando sum() + comprensión de lista

En esto, realizamos la tarea de obtener la suma usando sum(), y la comprensión de la lista se usa para buscar elementos en la lista de verificación e iterar a través de las filas.

Python3

# Python3 code to demonstrate working of 
# Cumulative Row Frequencies
# Using sum() + list comprehension
  
# initializing list
test_list = [[10, 2, 3, 2, 3], 
             [5, 5, 4, 7, 7, 4],
             [1, 2], [1, 1, 2, 2, 2]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing ele_list 
ele_list = [1, 2, 7]
  
# getting summation 
res = [sum(ele in ele_list for ele in sub) for sub in test_list]
  
# printing result 
print("Cumulative Frequencies : " + str(res))

Producción:

La lista original es: [[10, 2, 3, 2, 3], [5, 5, 4, 7, 7, 4], [1, 2], [1, 1, 2, 2, 2]] 
Frecuencias acumulativas: [2, 2, 2, 5]

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 *