Python – Extraer rangos faltantes

Dada la lista de tuplas, rango de inicio y valores de rango final, extraiga los rangos que faltan en la lista.

Entrada : test_list = [(7, 2), (15, 19), (38, 50)], strt_val = 5, stop_val = 60
Salida : [(5, 7), (2, 60), (2, 15 ), (19, 60), (19, 38), (50, 60)]
Explicación : los rangos de elementos faltantes que comienzan en 5 y terminan en 50-60 se emiten según se desee.

Entrada : test_list = [(7, 2), (15, 19), (38, 50)], strt_val = 1, stop_val = 52
Salida : [(1, 7), (2, 60), (2, 15) ), (19, 60), (19, 38), (50, 52)]
Explicación : similar al anterior, solo se modifican los rangos.

Método: Uso de bucle
Este es un método de fuerza bruta en el que se puede realizar esta tarea. En esto, hacemos un seguimiento de los valores de inicio y finalización, y seguimos agregando los rangos que faltan. Por último, es importante verificar si algún rango queda por debajo del rango más alto.

# Python3 code to demonstrate working of 
# Extract Missing Ranges
# Using loop
  
# initializing lists
test_list = [(6, 9), (15, 34), (48, 70)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing start val 
strt_val = 2
  
# initializing stop val 
stop_val = 100
  
# Using loop
res = []
for sub in test_list:
      
    # checking for start range
    if sub[0] > strt_val:
        res.append((strt_val, sub[0]))
        strt_val = sub[1]
  
    # checking for end range
    if strt_val < stop_val:
        res.append((strt_val, stop_val))
  
# printing result 
print("Missing range tuples : " + str(res)) 
Producción :

The original list is : [(6, 9), (15, 34), (48, 70)]
Missing range tuples : [(2, 6), (9, 100), (9, 15), (34, 100), (34, 48), (70, 100)]

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 *