Gostaria de ler alguns caracteres de uma string e colocá-la em outra string (como fazemos em C).
Então, meu código é como abaixo
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)
Em C, o código pode ser
i = j = 0;
while(str[i] != '\0')
{
srr[j++] = str [i++];
}
Como posso implementar o mesmo em Python?
str
como variável aqui, não poderá fazer conversões de stringstr(var_that_is_not_a_string)
nem comparar comparações comotype(var_with_unknown_type) == str
.Respostas:
No Python, as strings são imutáveis, portanto você não pode alterar os caracteres no local.
Você pode, no entanto, fazer o seguinte:
Os motivos pelos quais isso funciona é que é um atalho para:
O exemplo acima cria uma nova sequência a cada iteração e armazena a referência a essa nova sequência em
srr
.fonte
print " ".join(reversed("Hello world".split())).capitalize()
As outras respostas estão corretas, mas você pode, é claro, fazer algo como:
se você realmente quiser.
fonte
Seqüências de caracteres Python são imutáveis; portanto, o que você está tentando fazer em C será simplesmente impossível em python. Você precisará criar uma nova string.
Em seguida, use uma fatia de string:
fonte
Como aix mencionou - as strings no Python são imutáveis (você não pode alterá-las no local).
O que você está tentando fazer pode ser feito de várias maneiras:
fonte
Outra abordagem, se você quiser trocar um caractere específico por outro:
fonte
Que tal esta solução:
str = "Olá, mundo" (como indicado no problema) srr = str + ""
fonte
Oi, você deve tentar o método de divisão de string:
fonte