Python: extraiga el rango de rangos de elementos similares consecutivos de la lista de strings

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *