Comment supprimer des lettres d'une chaîne en Python

Les chaînes sont des types de données utilisés pour représenter du texte/des caractères. Dans cet article, nous présentons différentes méthodes pour résoudre le problème de la suppression du i ème caractère d'une chaîne et parler des solutions possibles qui peuvent être utilisées pour les réaliser en utilisant Python.

  Input:   'Geeks123For123Geeks'   Output:   GeeksForGeeks   Explanation:   In This, we have removed the '123' character from a string. 

Supprimer des caractères d'une chaîne en Python

Ce sont les méthodes suivantes grâce auxquelles nous pouvons supprimer des lettres d’une chaîne dans Python :

  • En utilisant str.replace()
  • En utilisant traduire()
  • En utilisant récursivité
  • Utilisation de la méthode native
  • Utilisation de tranche + concaténation
  • En utilisant str.join()
  • En utilisant tableau d'octets
  • En utilisant supprimer le préfixe ()

Supprimer des caractères d'une chaîne à l'aide de replace()

str.replace() peut être utilisé pour remplacer toutes les occurrences du caractère souhaité. Il peut également être utilisé pour effectuer la tâche de suppression de caractères d'une chaîne, car nous pouvons remplacer l'index particulier par un caractère vide, et ainsi résoudre le problème.

Python3




# Initializing String> test_str> => 'GeeksForGeeks'> # 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)>

Sortir

The string after removal of i'th character( doesn't work) : GksForGks The string after removal of i'th character(works) : GeekForGeeks 

Complexité temporelle : Sur)
Complexité spatiale : Sur)

Inconvénient: L'inconvénient majeur de l'utilisation de replace() est qu'elle échoue dans les cas où il y a des doublons dans une chaîne qui correspondent au caractère en pos. je. replace() remplace toutes les occurrences d'un caractère particulier et remplacerait donc toutes les occurrences de tous les caractères en pos i. On peut encore parfois utiliser cette fonction si le caractère de remplacement apparaît pendant 1 St temps dans la chaîne.

Supprimez le caractère spécifique de la chaîne à l'aide de Translate()

Cette méthode fournit un mécanisme puissant pour supprimer des caractères d’une chaîne. Dans cette méthode, nous avons supprimé 123 de techcodeview.com en utilisant string.translate() .

Python3




str> => 'Geeks123For123Geeks'> > print> (> str> .translate({> ord> (i):> None> for> i> in> '123'> }))>

Sortir

GeeksForGeeks 

Complexité temporelle : Sur)
Complexité spatiale : O(m)

Supprimer le caractère spécifique de la chaîne à l'aide de la récursion

Pour supprimer le ième caractère d'une chaîne par récursion, vous pouvez définir une fonction récursive qui prend la chaîne et l'index à supprimer comme arguments. La fonction vérifiera si l'index est égal à 0, dans ce cas elle renvoie la chaîne avec le premier caractère supprimé. Si l'index n'est pas 0, la fonction peut renvoyer le premier caractère de la chaîne concaténée avec le résultat du nouvel appel de la fonction sur la chaîne avec l'index décrémenté de 1.

Python3




def> remove_ith_character(s, i):> > # Base case: if index is 0,> > # return string with first character removed> > if> i> => => 0> :> > return> s[> 1> :]> > # Recursive case: return first character> > # concatenated with result of calling function> > # on string with index decremented by 1> > return> s[> 0> ]> +> remove_ith_character(s[> 1> :], i> -> 1> )> # Test the function> test_str> => 'GeeksForGeeks'> new_str> => remove_ith_character(test_str,> 2> )> print> (> 'The string after removal of ith character:'> , new_str)> # This code is contributed by Edula Vinay Kumar Reddy>

Sortir

The string after removal of ith character: GeksForGeeks 

Complexité temporelle : Sur)
Complexité spatiale : Sur)

Supprimer des lettres d'une chaîne à l'aide de la méthode native

Dans cette méthode, il suffit d'exécuter un Boucle Python et ajoutez les caractères au fur et à mesure qu'ils viennent, et construisez une nouvelle chaîne à partir de la chaîne existante, sauf lorsque l'index est i.

Python3




test_str> => 'GeeksForGeeks'> # Removing char at pos 3> 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)>

Sortir

The string after removal of i'th character : GeksForGeeks 

Complexité temporelle : Sur)
Complexité spatiale : O(n), où n est la longueur de la chaîne.

Supprimer le je ème Caractère de la chaîne utilisant Slice

On peut utiliser tranche de chaîne et coupez la chaîne avant le pos i, et coupez après le pos i. Puis en utilisant concaténation de chaînes des deux, je ème Le caractère peut sembler supprimé de la chaîne.

Python3




# Initializing String> test_str> => 'GeeksForGeeks'> # 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)>

Sortir

The string after removal of i'th character : GeksForGeeks 

Complexité temporelle : Sur)
Complexité spatiale : Sur)

Supprimer le je ème Caractère de la chaîne utilisant str.join()

Dans cette méthode, chaque élément d'une chaîne est d'abord converti en tant qu'élément de la liste, puis chacun d'eux est joint pour former une chaîne à l'exception de l'index spécifié.

Python3




# Initializing String> test_str> => 'GeeksForGeeks'> # 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)>

Sortir

The string after removal of i'th character : GeksForGeeks 

Complexité temporelle : Sur)
Complexité spatiale : Sur)

Supprimer des lettres d'une chaîne en Python à l'aide de bytearray

Définissez la fonction remove_char(s, i) qui prend une chaîne s et un entier i en entrée. Et puis convertissez la chaîne d'entrée s en un bytearray en utilisant bytearray(s, 'utf-8'). Supprimez le ième élément du tableau d'octets en utilisant del b[i]. Convertissez le bytearray modifié en chaîne à l'aide de b.decode() et renvoyez la chaîne modifiée.

Python3




def> remove_char(s, i):> > b> => bytearray(s,> 'utf-8'> )> > del> b[i]> > return> b.decode()> # Example usage> s> => 'hello world'> i> => 4> s> => remove_char(s, i)> print> (s)>

Sortir

hell world 

Complexité temporelle : Sur)
Complexité spatiale : Sur)

Supprimer les lettres d'une chaîne à l'aide de removeprefix()

supprimer le préfixe() supprime le préfixe et renvoie le reste de la chaîne. Nous pouvons supprimer des lettres d'une chaîne pour n'importe quel index spécifique en divisant la chaîne en deux moitiés de telle sorte que la lettre que nous voulions supprimer apparaisse dans le préfixe de l'une des deux partitions, puis nous pouvons appliquer la méthode pour supprimer la lettre.

Python3




#initializing the string> s> => 'techcodeview.com'> #if you wanted to remove 'G' of 0th index> s1> => s.removeprefix(> 'G'> )> #if you wanted to remove 'f'> s2> => s[:> 5> ]> +> s[> 5> :].removeprefix(> 'f'> )> print> (s1)> print> (s2)>

Sortir:

eeksforGeeks GeeksorGeeks 

Complexité temporelle : Sur)
Complexité spatiale : Sur)