A veces, mientras trabajamos con datos, podemos tener un problema en el que necesitamos realizar la eliminación de strings según los rangos de substrings especificados. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: Uso de loop + list slicing
Esta es la tarea de fuerza bruta para realizar esta tarea. En esto, rehacemos la String omitiendo cuidadosamente los rangos de corte usando el corte de lista. La iteración de tuplas se realiza mediante bucle.
# Python3 code to demonstrate working of # Slice String from Tuple ranges # using loop + list slicing # initialize list and string test_list = [(2, 4), (5, 9), (13, 17), (24, 27)] test_str = "geeksforgeeks is best for geeks and programming" # printing original list and string print("The original list : " + str(test_list)) print("The original string : " + str(test_str)) # Slice String from Tuple ranges # using loop + list slicing for front, rear in reversed(test_list): test_str = test_str[ : front] + test_str[rear + 1:] # printing result print("The String after slicing is : " + str(test_str))
The original list : [(2, 4), (5, 9), (13, 17), (24, 27)] The original string : geeksforgeeks is best for geeks and programming The String after slicing is : geeksest foeks and programming
Método n.º 2: uso de la join() + any()
expresión del generador +
La combinación de estas funcionalidades también se puede usar para realizar esta tarea. En esto, realizamos la tarea de dividir utilizando la expresión del generador y la exclusión es manejada por any(). La creación de strings modificadas se realiza mediante join().
# Python3 code to demonstrate working of # Slice String from Tuple ranges # using join() + any() + generator expression # initialize list and string test_list = [(2, 4), (5, 9), (13, 17), (24, 27)] test_str = "geeksforgeeks is best for geeks and programming" # printing original list and string print("The original list : " + str(test_list)) print("The original string : " + str(test_str)) # Slice String from Tuple ranges # using join() + any() + generator expression res = "".join(test_str[idx] for idx in range(len(test_str))\ if not any(front <= idx <= rear for front, rear in test_list)) # printing result print("The String after slicing is : " + str(res))
The original list : [(2, 4), (5, 9), (13, 17), (24, 27)] The original string : geeksforgeeks is best for geeks and programming The String after slicing is : geeksest foeks and programming
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