Dada una lista, la tarea es escribir un programa Python para agrupar cada ejecución creciente y decreciente. Esto se conoce como agrupación monótona. Una lista es monótona si es monótona creciente o monótona decreciente. Una lista A es monótona decreciente si para todo i <= j, A[i] >= A[j].
Ejemplo:
Entrada: test_list = [5, 6, 2, 9, 7, 1, 10, 4, 2, 1, 11, 12, 2]
Salida: [[5, 6], [2], [9], [7, 1], [10], [4, 2, 1], [11, 12], [2]]
Explicación: 6 > 5 y luego 2 es más pequeño que 6, por lo tanto, se vuelve decreciente y se inicia un nuevo grupo. 2 y 9 siendo elementos de punta o de tránsito, pertenecen a grupos individuales.
Entrada: test_list = [5, 6, 2, 9, 7, 1, 10, 4, 2, 1]
Salida: [[5, 6], [2], [9], [7, 1], [10], [4, 2, 1]]
Explicación: 6 > 5 y luego 2 es más pequeño que 6, por lo tanto, se vuelve decreciente y se inicia un nuevo grupo. 2 y 9 siendo elementos de punta o de tránsito, pertenecen a grupos individuales.
En esto, cada dos listas, cada una a partir del índice 0 y 1, se comprimen, y luego cada elemento de ambos se compara para verificar la ejecución y cambiar el indicador en consecuencia. El valor de la bandera inicial se evalúa en función de cuál de los 2 primeros elementos es mayor, la publicación de esa bandera se alterna para tener una agrupación de ejecución adecuada.
Python3
# Python3 code to demonstrate working of # Monotonous grouping in List # Using loop + zip() # initializing list test_list = [5, 6, 2, 9, 7, 1, 10, 4, 2, 1, 11, 12, 2] # printing original list print("The original list is : " + str(test_list)) res = [] temp = [] is_up = True if test_list[0] > test_list[1]: is_up = False for curr, nex in zip(test_list, test_list[1:]): temp.append(curr) # checking for increasing or decreasing to change list if (nex > curr and not is_up) or (nex < curr and is_up): res.append(temp) temp = [] # toggling is_up = not is_up temp.append(nex) res.append(temp) # printing result print("Monotonous grouping : " + str(res))
Producción:
La lista original es: [5, 6, 2, 9, 7, 1, 10, 4, 2, 1, 11, 12, 2]
Agrupación monótona: [[5, 6], [2], [9], [7, 1], [10], [4, 2, 1], [11, 12], [2]]
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