Python | Sublista de suma máxima

Podemos tener una aplicación para encontrar las listas con el valor máximo e imprimirla. Esto parece una tarea bastante fácil y también puede ser fácil de codificar, pero tener atajos para realizar lo mismo siempre es útil, ya que este tipo de problema puede surgir en el desarrollo web.

Método #1: Usar reduce()+ lambda
Las dos funciones anteriores pueden ayudarnos a lograr esta tarea en particular. La función lambda hace la tarea de lógica e iteración y reduce la función hace la tarea de devolver el resultado requerido. Funciona solo en Python 2.

# Python code to demonstrate
# maximum sum sublist 
# using reduce() + lambda
  
# importing functools for reduce()
import functools
  
# initializing matrix 
test_matrix = [[1, 3, 1], [4, 5, 3], [1, 2, 4]]
  
# printing the original matrix
print ("The original matrix is : " + str(test_matrix))
  
# using reduce() + lambda
# maximum sum sublist 
res = functools.reduce(lambda i, j: i if sum(i) > sum(j) 
      else j, test_matrix)
  
# printing result
print ("Maximum sum sublist is : " + str(res))
Producción:

The original matrix is : [[1, 3, 1], [4, 5, 3], [1, 2, 4]]
Maximum sum sublist is : [4, 5, 3]

Método n.º 2: Uso de la max()tecla +
La función max puede obtener el máximo de toda la lista y la tecla se usa para especificar en qué condición máxima se debe aplicar, que es la suma en este caso.

# Python3 code to demonstrate
# maximum sum sublist 
# using max() + key
  
# initializing matrix 
test_matrix = [[1, 3, 1], [4, 5, 3], [1, 2, 4]]
  
# printing the original matrix
print ("The original matrix is : " + str(test_matrix))
  
# using max() + key
# maximum sum sublist 
res = max(test_matrix, key = sum)
  
# printing result
print ("Maximum sum sublist is : " + str(res))
Producción:

The original matrix is : [[1, 3, 1], [4, 5, 3], [1, 2, 4]]
Maximum sum sublist is : [4, 5, 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *