Muchas veces necesitamos obtener el mínimo de no toda la lista sino solo una parte de ella ya intervalos regulares. Estos intervalos a veces se deciden estáticamente antes del recorrido, pero a veces, la restricción es más dinámica y, por lo tanto, necesitamos manejarla de una manera más compleja. Los criterios discutidos aquí son un mínimo de grupos distintos de cero. Analicemos ciertas formas en que se puede realizar esta tarea.
Método #1: Uso de bucles
Esta tarea se puede realizar usando la fuerza bruta usando los bucles. Simplemente recorremos la lista de cada elemento para probar si su elemento siguiente tiene un valor distinto de cero y realizamos el mínimo una vez que encontramos que el siguiente valor es cero y lo agregamos en la lista de resultados.
# Python3 code to demonstrate # Natural Numbers Minimum # Using loops # initializing list test_list = [4, 9, 0, 0, 3, 4, 5, 0, 0, 4, 0] # printing original list print("The original list : " + str(test_list)) # using loops # Natural Numbers Minimum res = [] val = 99999 for ele in test_list: if ele == 0: if val != 99999: res.append(val) val = 99999 else: val = min(val, ele) # print result print("The non-zero group Minimum of list is : " + str(res))
The original list : [4, 9, 0, 0, 3, 4, 5, 0, 0, 4, 0] The non-zero group Minimum of list is : [4, 3, 4]
Método n.º 2: usaritertools.groupby() + min()
Esta tarea en particular también se puede realizar usando la función groupby para agrupar todos los valores distintos de cero y la función min se puede usar para realizar su mínimo.
# Python3 code to demonstrate # Natural Numbers Minimum # Using itertools.groupby() + min() from itertools import groupby # initializing list test_list = [4, 9, 0, 0, 3, 4, 5, 0, 0, 4, 0] # printing original list print("The original list : " + str(test_list)) # using itertools.groupby() + min() # Natural Numbers Minimum res = [min(val) for keys, val in groupby(test_list, key = lambda x: x != 0) if keys != 0] # print result print("The non-zero group minimum of list is : " + str(res))
The original list : [4, 9, 0, 0, 3, 4, 5, 0, 0, 4, 0] The non-zero group Minimum of list is : [4, 3, 4]
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