Python: elimina los rangos de índice de String

Dada una lista de strings y rangos, elimine todos los caracteres que aparecen en los rangos. 

Entrada : test_str = ‘geeksforgeeks es mejor para geeks’, range_list = [(3, 6), (7, 10)]
Salida : geeks es mejor para geeks
Explicación : Se eliminaron los rangos requeridos.

Entrada : test_str = ‘geeksforgeeks es lo mejor para los geeks’, range_list = [(3, 6)]
Salida : georgeeks es lo mejor para los geeks
Explicación : se eliminaron los rangos requeridos.

Método #1: Usar bucle

En esto, verificamos cada rango, rehacemos la string, considerando que el índice no se encuentra en la verificación de rango usando declaraciones condicionales.

Python3

# Python3 code to demonstrate working of 
# Remove index ranges from String 
# Using loop
  
# initializing strings
test_str1 = 'geeksforgeeks is best for geeks'
  
# printing original string
print("The original string 1 is : " + str(test_str1))
  
# initializing ranges list 
range_list = [(3, 6), (7, 10), (14, 17)]
  
res = ""
  
for idx, chr in enumerate(test_str1):
  for strt_idx, end_idx in range_list:
        
    # checking for ranges and appending 
    if strt_idx <= idx + 1 <= end_idx: 
      break
  else:
    res += chr
  
# printing result 
print("The reconstructed string : " + str(res)) 
Producción

The original string 1 is : geeksforgeeks is best for geeks
The reconstructed string : geeksbest for geeks

Método #2: Usando any() + comprensión de lista + join()

En esto, realizamos la tarea de verificar los índices de las strings usando any() y la comprensión de la lista se usa para reconstruir la string en consecuencia. 

Python3

# Python3 code to demonstrate working of 
# Remove index ranges from String 
# Using any() + list comprehension + join()
  
# initializing strings
test_str1 = 'geeksforgeeks is best for geeks'
  
# printing original string
print("The original string 1 is : " + str(test_str1))
  
# initializing ranges list 
range_list = [(3, 6), (7, 10), (14, 17)]
  
# using any() to check for strings in index ranges
res = ''.join(chr for idx, chr in enumerate(test_str1, 1) if not any(strt_idx <= idx <= end_idx 
         for strt_idx, end_idx in range_list))
  
# printing result 
print("The reconstructed string : " + str(res)) 
Producción

The original string 1 is : geeksforgeeks is best for geeks
The reconstructed string : geeksbest for geeks

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 *