"en lieu" de la chaîne de modifications en Python

En Python, les chaînes sont immuables.

Quelle est la norme de l'idiome de marcher à travers une chaîne de caractère par caractère et de le modifier?

Les seules méthodes que je peux penser sont parfois vraiment stanky hacks liés à l'adhésion à l'encontre d'une chaîne de résultat.

--

Dans C:

for(int i = 0; i < strlen(s); i++)
{
   s[i] = F(s[i]);
}

C'est super expressif et dit exactement ce que je suis en train de faire. C'est ce que je suis à la recherche d'.

  • Je suppose que depuis qu'ils sont immuables vous ne pouvez pas "modifier"... entendez-vous construire une nouvelle chaîne de caractères char par char?
  • C'est vraiment rare. Pouvez-vous donner à un contexte ou à un cas d'utilisation pour le faire?
  • Ajout de bruit à un message pour les tests.
  • Nathan: "Ajout de bruit à un message"? Comme dans "remplacer des caractères au hasard"? Quel est le problème avec replace pour cela?
  • Remplacer les sélectionne en fonction des éléments connus dans la liste `mystring.replace("1", "i")"; que je veux pour itérer par index - je ne sais pas quels sont les éléments qui seront dans la liste en soi. (Pourquoi a-t-il à une telle douleur?)
  • Nathan: D'Accord. Vous êtes en faisant des substitutions en position. Ce n'est pas clair, parce que le code en C d'origine n'est pas claire. En C il ya tellement de nombreuses limites et les imperfections qu'il est difficile de dire ce qui est essentiel et ce qui est juste C du décalage dans l'exemple de code. "Pourquoi a-t-il à une telle douleur?"? Quoi? Pourquoi est-ce qu'être une douleur? Je ne comprends pas cette partie de votre commentaire.

InformationsquelleAutor Paul Nathan | 2010-08-11