Sou novo em Python, vindo de Java e C. Como posso incrementar um char? Em Java ou C, chars e ints são praticamente intercambiáveis e, em certos loops, é muito útil para mim ser capaz de incrementar chars e indexar arrays por chars.
Como posso fazer isso em Python? Já é ruim o suficiente não ter um looper tradicional para (;;) - há alguma maneira de conseguir o que desejo sem ter que repensar toda a minha estratégia?
for
loop:for i in range(50): do_something_with(i)
. Vamos lá, isso não é tão ruim !![''.join(i) for i in itertools.product(string.ascii_lowercase, repeat=2)]
Respostas:
No Python 2.x, basta usar as funções
ord
echr
:Python 3.x torna isso mais organizado e interessante, devido à sua clara distinção entre bytes e unicode. Por padrão, uma "string" é unicode, então o acima funciona (
ord
recebe caracteres Unicode e oschr
produz).Mas se você estiver interessado em bytes (como para processar algum fluxo de dados binários), as coisas são ainda mais simples:
fonte
"ruim o suficiente não ter um tradicional para (;;) looper" ?? O que?
Você está tentando fazer
Ou talvez você esteja usando
string.uppercase
oustring.letters
?O Python não tem
for(;;)
porque geralmente há maneiras melhores de fazer isso. Também não tem matemática de personagem porque também não é necessária.fonte
Eu vim do PHP, onde você pode incrementar char (A para B, Z para AA, AA para AB etc.) usando o operador ++. Fiz uma função simples que faz o mesmo em Python. Você também pode alterar a lista de caracteres para o que for necessário (minúsculas, maiúsculas, etc.).
fonte
Existe uma maneira de aumentar o caractere usando
ascii_letters
fromstring
package, queascii_letters
é uma string que contém todo o alfabeto inglês, maiúsculas e minúsculas:Também pode ser feito manualmente;
fonte
Verifique isto: USANDO PARA LOOP
for a in range(5): x='A' val=chr(ord(x)+a) print(val)
SAÍDA: ABCBDE
fonte
resultado:
fonte