Je suis nouveau dans Python, venant de Java et C. Comment puis-je incrémenter un caractère? En Java ou C, les caractères et les entiers sont pratiquement interchangeables, et dans certaines boucles, il m'est très utile de pouvoir incrémenter les caractères et indexer les tableaux par caractères.
Comment puis-je faire cela en Python? C'est déjà assez mauvais de ne pas avoir de boucleur for (;;) traditionnel - y a-t-il un moyen de réaliser ce que je veux réaliser sans avoir à repenser toute ma stratégie?
for
boucle:for i in range(50): do_something_with(i)
. Allez, ce n'est pas si mal !![''.join(i) for i in itertools.product(string.ascii_lowercase, repeat=2)]
Réponses:
Dans Python 2.x, utilisez simplement les fonctions
ord
etchr
:Python 3.x rend cela plus organisé et intéressant, en raison de sa distinction claire entre les octets et unicode. Par défaut, une "chaîne" est unicode, donc ce qui précède fonctionne (
ord
reçoit les caractères Unicode et leschr
produit).Mais si vous êtes intéressé par les octets (comme pour le traitement de certains flux de données binaires), les choses sont encore plus simples:
la source
"assez mauvais de ne pas avoir de boucleur for (;;) traditionnel" ?? Quoi?
Essayez-vous de faire
Ou peut-être que vous utilisez
string.uppercase
oustring.letters
?Python n'a pas,
for(;;)
car il existe souvent de meilleures façons de le faire. Il n'a pas non plus de calcul de caractères car ce n'est pas nécessaire non plus.la source
Je viens de PHP, où vous pouvez incrémenter char (A à B, Z à AA, AA à AB, etc.) en utilisant l'opérateur ++. J'ai créé une fonction simple qui fait la même chose en Python. Vous pouvez également changer la liste des caractères en ce qui vous convient (minuscules, majuscules, etc.).
la source
Il existe un moyen d'augmenter le caractère en utilisant
ascii_letters
fromstring
package quiascii_letters
est une chaîne contenant tout l'alphabet anglais, majuscules et minuscules:Cela peut également être fait manuellement;
la source
Vérifiez ceci: UTILISATION POUR LOOP
for a in range(5): x='A' val=chr(ord(x)+a) print(val)
SORTIE: ABCBDE
la source
production:
la source