Algunos de los problemas clásicos en el dominio de la programación provienen de diferentes categorías y uno de ellos es encontrar la media de los subconjuntos. Este problema particular también es común cuando necesitamos calcular el promedio y almacenar la media de un grupo consecutivo. Probemos diferentes enfoques para este problema en lenguaje python.
Método #1: Uso de la comprensión de listas +sum()
La comprensión de listas se puede usar para realizar esta tarea en particular para filtrar grupos sucesivos y la función de suma se puede usar para obtener la suma de la solución filtrada. Dividimos la suma por el tamaño de la sublista para el promedio.
# Python3 code to demonstrate # Mean of consecutive Sublist # using list comprehension + sum() # initializing list test_list = [4, 7, 8, 10, 12, 15, 13, 17, 14] # printing original list print("The original list : " + str(test_list)) # using list comprehension + sum() # Mean of consecutive Sublist res = [ sum(test_list[x : x + 3]) / 3 for x in range(0, len(test_list), 3)] # printing result print("The grouped average list is : " + str(res))
The original list : [4, 7, 8, 10, 12, 15, 13, 17, 14] The grouped average list is : [6.333333333333333, 12.333333333333334, 14.666666666666666]
Método n.° 2: usosum() + itertools.islice()
La tarea de dividir la lista en partes se realiza aquí mediante el método islice y la tarea convencional de obtener la suma se realiza mediante la función sum como el método anterior. Dividimos la suma por el tamaño de la sublista para el promedio.
# Python3 code to demonstrate # Mean of consecutive Sublist # using itertools.islice() + sum() import itertools # initializing list test_list = [4, 7, 8, 10, 12, 15, 13, 17, 14] # printing original list print("The original list : " + str(test_list)) # using itertools.islice() + sum() # Mean of consecutive Sublist res = [sum(list(itertools.islice(test_list, i, i + 3))) / 3 for i in range(0, len(test_list), 3)] # printing result print("The grouped average list is : " + str(res))
The original list : [4, 7, 8, 10, 12, 15, 13, 17, 14] The grouped average list is : [6.333333333333333, 12.333333333333334, 14.666666666666666]
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