Python: remplacement de caractères chaîne de caractères sans les remplacer() la fonction
C'est surtout un problème de logique. Je suis en train de remplacer un caractère dans une chaîne sans utiliser la fonction remplacer. Je suis en train d'essayer d'abord de le transformer en une liste, modifier les éléments, puis remettez-le en chaîne. Ma tentative:
def changeCar(ch,ca1,ca2):
a=list(ch)
for x in a:
if x==ca1:
x==ca2
return a
Cependant cela ne fonctionne pas. D'ailleurs, je ne suis pas sûr de savoir comment le transformer en chaîne de caractères. De l'aide s'il vous plaît?
- Comment ne pas fonctionner? Qu'attendez-vous, et ce qui se produit réellement?
InformationsquelleAutor L.R. | 2014-12-13
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de définir une chaîne de caractères comme une liste en python.
Si vous DEVEZ toutefois utiliser une liste:
Vous êtes sur la bonne voie. Depuis Python chaînes sont immuables, vous n'êtes pas en mesure de transformer les personnages en place, de sorte que l'approche de crève-la dans une liste de caractères, modifier les éléments à l'intérieur de cette liste, et puis re-joindre à elle est correcte. Votre solution ne fonctionne pas parce que
x
n'est pas une référence (ou pointeur) pour les éléments à l'intérieur de la liste, mais une copie. Ainsi,x = c2
(et pasx == c2
, que votre exemple montre) ne modifie que la copie. Vous aurez accès à la liste par index, comme suit:Vous pouvez également utiliser une liste de compréhension pour un maximum de concision, mais il pourrait être un peu illisible:
Ne changez pas de chaîne dans une liste. C'est inutile. Au lieu de cela, définir une chaîne vide dans la définition de la fonction, puis ajouter en conséquence, et dans la déclaration de fin de la valeur de cette variable:
Maintenant, vous obtenez:
a == b
est un La Comparaison De L'Expression.a = b
est un L'Instruction D'Affectation. Pour transformer une liste en une chaîne de caractères:Pour de simples manipulations comme cela, vous pouvez utiliser interprétations de la liste.
Essayez comme ceci:
Cette compréhension de liste remplace le caractère 'o' avec 'un'