118 votes

Comment faire pour itérer dans l'alphabet ?

En Python, pourrais-je simplement ++ un caractère ? Quel est le moyen le plus efficace de le faire ?

Je veux parcourir les URL qui ont le format www.website.com/term/#, www.website.com/term/a, www.website.com/term/b, www.website.com/term/c, www.website.com/term/d ... www.website.com/term/z.

193voto

Jared Points 6403

Vous pouvez utiliser string.ascii_lowercase qui est simplement une chaîne pratique de lettres minuscules,

>>> from string import ascii_lowercase
>>> for c in ascii_lowercase:
...     # append to your url

34voto

Brian Points 2581

En plus de string.ascii_lowercase vous devriez également jeter un coup d'œil à la ord y chr encastrés. ord('a') vous donnera la valeur ascii de 'a' y chr(ord('a')) vous rendra la chaîne 'a' .

Grâce à elles, vous pouvez incrémenter et décrémenter les codes de caractères et effectuer des conversions dans les deux sens assez facilement. Table ASCII est toujours un bon signet à avoir aussi.

4voto

yonilobo Points 39

Le plus court chemin

for c in list(map(chr,range(ord('a'),ord('z')+1))):
    do_something(base_url+c)

fonction itérative

def plusplus(oldChar):
     return chr(ord(oldChar)+1)
plusplus('a') # output - b

Une autre option

url=www.website.com/term
my_char=ord('a') # convert char to ascii
while my_char<= ord('z'):
   my_char+=1 # iterate over abc
   my_url=url+chr(my_char)  # convert ascii to char
   do_something(my_url)

Basé sur la réponse de @Brian.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X