Supprimer des caractères spécifiques des chaînes en Python
Supprimer des caractères spécifiques d'une chaîne peut être une tâche courante en Python. Cependant, il est important de comprendre l'immuabilité des chaînes de Python lorsque vous tentez de modifier des chaînes.
L'extrait de code fourni :
for char in line: if char in ":?!/;": line.replace(char, "")
ne parvient pas à supprimer les caractères car les chaînes en Python sont immuables. Attribuer le résultat de line.replace(...) à une nouvelle variable créera une nouvelle chaîne avec les modifications souhaitées, mais cela ne modifiera pas la chaîne d'origine.
Solutions :
Option 1 : Remplacement d'expressions régulières
import re line = re.sub('[!@#$]', '', line)
Cette approche consiste à utiliser des expressions régulières pour spécifier les caractères à être supprimés et remplacez-les par une chaîne vide.
Option 2 : méthode de traduction
line = line.translate({ord(c): None for c in '!@#$'})
Dans Python 3, nous pouvons utiliser la méthode de traduction avec une traduction personnalisée table, qui mappe les caractères sur Aucun pour indiquer la suppression.
Option 3 : maketrans Méthode
line = line.translate(str.maketrans('', '', '!@#$'))
Cette option crée la table de traduction à l'aide de la fonction maketrans, qui génère un mappage entre la chaîne vide et les caractères à supprimer.
Conclusion :
Lors de la modification de chaînes en Python, il est essentiel de considérer leur immuabilité et d'utiliser les techniques appropriées pour obtenir le résultat souhaité, comme relier la chaîne modifiée à une variable ou utiliser des fonctions comme re.sub ou str.translate.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!