Dada una lista, extraiga el rango de elementos similares consecutivos.
Entrada : test_list = [2, 3, 3, 3, 8, 8]
Salida : [(2, 0, 0), (3, 1, 3), (8, 4, 5)]
Explicación : 2 ocurre desde 0 al índice 0, 3 del índice 1 al 3.Entrada : test_list = [3, 3, 3]
Salida : [(3, 0, 3)]
Explicación : 3 del 0 al 3er índice.
Enfoque: Uso de bucle
Esta es una forma bruta de abordar este problema. En esto, hacemos un bucle para cada elemento y obtenemos un rango de elementos similar. Estos se rastrean y se agregan en la lista de acuerdo con los elementos.
Python3
# Python3 code to demonstrate working of # Consecutive Similar elements ranges # Using loop # initializing list test_list = [2, 3, 3, 3, 8, 8, 6, 7, 7] # printing original list print("The original list is : " + str(test_list)) res = [] idx = 0 while idx < (len(test_list)): strt_pos = idx val = test_list[idx] # getting last pos. while (idx < len(test_list) and test_list[idx] == val): idx += 1 end_pos = idx - 1 # appending in format [ele, strt_pos, end_pos] res.append((val, strt_pos, end_pos)) # printing result print("Elements with range : " + str(res))
Producción:
La lista original es: [2, 3, 3, 3, 8, 8, 6, 7, 7]
Elementos con rango: [(2, 0, 0), (3, 1, 3), (8, 4, 5), (6, 6, 6), (7, 7, 8)]
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