Je voudrais lire certains caractères d'une chaîne et les mettre dans une autre chaîne (comme nous le faisons en C).
Donc mon code est comme ci-dessous
import string
import re
str = "Hello World"
j = 0
srr = ""
for i in str:
srr[j] = i #'str' object does not support item assignment
j = j + 1
print (srr)
En C, le code peut être
i = j = 0;
while(str[i] != '\0')
{
srr[j++] = str [i++];
}
Comment puis-je implémenter la même chose en Python?
str
ici comme variable, vous ne pourrez pas effectuer de conversions de chaînes avecstr(var_that_is_not_a_string)
ou taper des comparaisons telles quetype(var_with_unknown_type) == str
.Réponses:
En Python, les chaînes sont immuables, vous ne pouvez donc pas modifier leurs caractères sur place.
Vous pouvez cependant effectuer les opérations suivantes:
La raison pour laquelle cela fonctionne est qu'il s'agit d'un raccourci pour:
Ce qui précède crée une nouvelle chaîne à chaque itération et stocke la référence à cette nouvelle chaîne dans
srr
.la source
print " ".join(reversed("Hello world".split())).capitalize()
Les autres réponses sont correctes, mais vous pouvez, bien sûr, faire quelque chose comme:
si vous voulez vraiment.
la source
Les chaînes Python sont immuables, donc ce que vous essayez de faire en C sera tout simplement impossible en python. Vous devrez créer une nouvelle chaîne.
Ensuite, utilisez une tranche de chaîne:
la source
Comme aix l'a mentionné - les chaînes en Python sont immuables (vous ne pouvez pas les changer en place).
Ce que vous essayez de faire peut être fait de plusieurs manières:
la source
Une autre approche si vous vouliez échanger un personnage spécifique contre un autre personnage:
la source
Et cette solution:
str = "Hello World" (comme indiqué dans le problème) srr = str + ""
la source
Salut, vous devriez essayer la méthode de fractionnement de chaîne:
la source