A veces, es posible que necesitemos agrupar la lista de acuerdo con los elementos consecutivos de la lista. Pero una variación útil de esto también puede ser un caso en el que necesitamos considerar un nivel de tolerancia, es decir, permitir un valor de salto entre números y no ser exactamente consecutivos, pero se permite una «brecha» entre números. Analicemos un enfoque en el que se puede realizar esta tarea.
Método: Uso del generador
El método bruto para realizar esta tarea. Usando loop y generador, uno puede realizar esta tarea. El operador de rendimiento se ocupa del corte y, por lo tanto, este problema también se resuelve mediante una pequeña verificación de la tolerancia.
# Python3 code to demonstrate working of # Group consecutive list elements with tolerance # Using generator # helper generator def split_tol(test_list, tol): res = [] last = test_list[0] for ele in test_list: if ele-last > tol: yield res res = [] res.append(ele) last = ele yield res # initializing list test_list = [1, 2, 4, 5, 9, 11, 13, 24, 25, 26, 28] # printing original list print("The original list is : " + str(test_list)) # Group consecutive list elements with tolerance # Using generator res = list(split_tol(test_list, 2)) # printing result print("The splitted list is : " + str(res))
The original list is : [1, 2, 4, 5, 9, 11, 13, 24, 25, 26, 28] The splitted list is : [[1, 2, 4, 5], [9, 11, 13], [24, 25, 26, 28]]
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