Python – Máximo de sublista en la lista dividida personalizada

A veces, mientras trabajamos con datos, podemos tener un problema en el que necesitamos extraer el máximo no de la lista completa sino de ciertas sublistas rotas de forma personalizada. Este tipo de problema es peculiar y ocurre en muchos dominios. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.° 1: usar itertools.islice() + max()la comprensión de listas +
La combinación de los métodos anteriores se puede usar para resolver este problema. En este caso, islice() se usa para realizar cortes personalizados y la comprensión de listas se usa para iterar y max() se usa para calcular el máximo.

# Python3 code to demonstrate
# Sublist Maximum in custom sliced List
# using itertools.islice() + list comprehension
from itertools import islice
  
# initializing test list
test_list = [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
  
# initializing slice list 
slice_list = [2, 1, 3, 4]
  
# printing original list 
print("The original list : " + str(test_list))
  
# printing slice list 
print("The slice list : " + str(slice_list))
  
# using itertools.islice() + list comprehension
# Sublist Maximum in custom sliced List
temp = iter(test_list)
res = [max(list(islice(temp, part))) for part in slice_list]
  
# print result
print("The variable sliced list maximum is : " + str(res))
Producción :

The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list maximum is : [5, 3, 10, 16]

Método n.º 2: Uso de la segmentación de zip() + accumulate() + max()lista +
Además de utilizar la comprensión de lista para realizar la tarea de enlace, este método utiliza la función zip para mantener unido el elemento de la sublista, la función de acumulación une los elementos y la segmentación se utiliza para construir la segmentación requerida. El max() se usa para realizar el máximo.

# Python3 code to demonstrate
# Sublist Maximum in custom sliced List
# using zip() + accumulate() + list slicing + max()
from itertools import accumulate
  
# initializing test list
test_list = [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
  
# initializing slice list 
slice_list = [2, 1, 3, 4]
  
# printing original list 
print("The original list : " + str(test_list))
  
# printing slice list 
print("The slice list : " + str(slice_list))
  
# using zip() + accumulate() + list slicing + max()
# Sublist Maximum in custom sliced List
res = [max(test_list[i - j: i]) for i, j in zip(accumulate(slice_list), slice_list)]
  
# print result
print("The variable sliced list maximum is : " + str(res))
Producción :

The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list maximum is : [5, 3, 10, 16]

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 *