Formas de eliminar el i-ésimo carácter de una string en Python

En Python, se sabe que la string es inmutable y, por lo tanto, a veces presenta restricciones visibles al codificar las construcciones que se requieren en la programación día a día. Este artículo presenta uno de esos problemas de eliminar el i-ésimo carácter de una string y habla sobre las posibles soluciones que se pueden emplear para lograrlo.

Método 1: método ingenuo

En este método, uno solo tiene que ejecutar un bucle y agregar los caracteres a medida que vienen y construir una nueva string a partir de la existente, excepto cuando el índice es i.

Código n. ° 1: Demostración del método Naive para eliminar i’th char de la string.

# Python code to demonstrate
# method to remove i'th character
# Naive Method
  
# Initializing String 
test_str = "GeeksForGeeks"
  
# Printing original string 
print ("The original string is : " + test_str)
  
# Removing char at pos 3
# using loop
new_str = ""
  
for i in range(len(test_str)):
    if i != 2:
        new_str = new_str + test_str[i]
  
# Printing string after removal  
print ("The string after removal of i'th character : " + new_str)

Producción:

The original string is : GeeksForGeeks
The string after removal of i'th character : GeksForGeeks

Nota: Esta solución es mucho más lenta (tiene una complejidad de tiempo O(n^2)) que los otros métodos. Si se necesita velocidad, el método #3 es similar en lógica y es más rápido (tiene una complejidad de tiempo O(n)).

Método 2: Usarstr.replace()

replace()posiblemente se puede usar para realizar la tarea de eliminación, ya que podemos reemplazar el índice particular con un carácter vacío y, por lo tanto, resolver el problema.

Inconveniente: el principal inconveniente de este enfoque es que falla en caso de que haya duplicados en una string que coincida con el carácter en pos. i. replace()reemplaza todas las apariciones de un carácter en particular y, por lo tanto, reemplazaría todas las apariciones de todos los caracteres en pos i. Todavía podemos usar esta función a veces si el carácter de reemplazo aparece la primera vez en la string.

Código #2: Demostración del uso de str.replace()para eliminar i’th char.

# Python code to demonstrate
# method to remove i'th character
# using replace()
  
# Initializing String 
test_str = "GeeksForGeeks"
  
# Printing original string 
print ("The original string is : " + test_str)
  
# Removing char at pos 3
# using replace
new_str = test_str.replace('e', '')
  
# Printing string after removal  
# removes all occurrences of 'e'
print ("The string after removal of i'th character( doesn't work) : " + new_str)
  
# Removing 1st occurrence of s, i.e 5th pos.
# if we wish to remove it.
new_str = test_str.replace('s', '', 1)
  
# Printing string after removal  
# removes first occurrences of s
print ("The string after removal of i'th character(works) : " + new_str)

Producción:

The original string is : GeeksForGeeks
The string after removal of i'th character( doesn't work) : GksForGks
The string after removal of i'th character(works) : GeekForGeeks
Método 3: Usar división + concatenación

Una vez puede usar el corte de string y cortar la string antes de pos i, y cortar después de pos i. Luego, al usar la concatenación de strings de ambos, puede parecer que el i-ésimo carácter se eliminó de la string.

Código n.º 3: demostración del uso de división y concatenación para eliminar el i-ésimo carácter.

# Python code to demonstrate
# method to remove i'th character
# using slice + concatenation
  
# Initializing String 
test_str = "GeeksForGeeks"
  
# Printing original string 
print ("The original string is : " + test_str)
  
# Removing char at pos 3
# using slice + concatenation
new_str = test_str[:2] +  test_str[3:]
  
# Printing string after removal  
# removes ele. at 3rd index
print ("The string after removal of i'th character : " + new_str)

Producción :

The original string is : GeeksForGeeks
The string after removal of i'th character : GeksForGeeks
Método 4: Uso str.join()y comprensión de listas

En este método, cada elemento de la string se convierte primero como cada elemento de la lista y luego cada uno de ellos se une para formar una string excepto el índice especificado.

Código #4: Demostración str.join()y comprensión de listas para eliminar i’th index char.

# Python code to demonstrate
# method to remove i'th character
# using join() + list comprehension
  
# Initializing String 
test_str = "GeeksForGeeks"
  
# Printing original string 
print ("The original string is : " + test_str)
  
# Removing char at pos 3
# using join() + list comprehension
new_str = ''.join([test_str[i] for i in range(len(test_str)) if i != 2])
  
# Printing string after removal  
# removes ele. at 3rd index
print ("The string after removal of i'th character : " + new_str)

Producción :

The original string is : GeeksForGeeks
The string after removal of i'th character : GeksForGeeks

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 *