python string list alphabet

python - Alfabeto gama pitón



ord python (4)

En lugar de hacer una lista de alfabeto como esta:

alpha = [''a'', ''b'', ''c'', ''d''.........''z'']

¿Hay alguna manera de que podamos agruparlo en un rango o algo? Por ejemplo, para números se puede agrupar usando el range()

range(1, 10)


Aquí hay una implementación simple de rango de letras:

Código

def letter_range(start, stop="{", step=1): """Yield a range of lowercase letters.""" for ord_ in range(ord(start.lower()), ord(stop.lower()), step): yield chr(ord_)

Manifestación

list(letter_range("a", "f")) # [''a'', ''b'', ''c'', ''d'', ''e''] list(letter_range("a", "f", step=2)) # [''a'', ''c'', ''e'']


En Python 2.7 y 3 puedes usar esto:

import string string.ascii_lowercase ''abcdefghijklmnopqrstuvwxyz'' string.ascii_uppercase ''ABCDEFGHIJKLMNOPQRSTUVWXYZ''

Como dice @Zaz: string.lowercase está en desuso y ya no funciona en Python 3, pero string.ascii_lowercase funciona en ambos


>>> import string >>> string.ascii_lowercase ''abcdefghijklmnopqrstuvwxyz''

Si realmente necesitas una lista:

>>> list(string.ascii_lowercase) [''a'', ''b'', ''c'', ''d'', ''e'', ''f'', ''g'', ''h'', ''i'', ''j'', ''k'', ''l'', ''m'', ''n'', ''o'', ''p'', ''q'', ''r'', ''s'', ''t'', ''u'', ''v'', ''w'', ''x'', ''y'', ''z'']

Y hacerlo con range

>>> list(map(chr, range(97, 123))) #or list(map(chr, range(ord(''a''), ord(''z'')+1))) [''a'', ''b'', ''c'', ''d'', ''e'', ''f'', ''g'', ''h'', ''i'', ''j'', ''k'', ''l'', ''m'', ''n'', ''o'', ''p'', ''q'', ''r'', ''s'', ''t'', ''u'', ''v'', ''w'', ''x'', ''y'', ''z'']

Otras características útiles del módulo de string :

>>> help(string) # on Python 3 .... DATA ascii_letters = ''abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'' ascii_lowercase = ''abcdefghijklmnopqrstuvwxyz'' ascii_uppercase = ''ABCDEFGHIJKLMNOPQRSTUVWXYZ'' digits = ''0123456789'' hexdigits = ''0123456789abcdefABCDEF'' octdigits = ''01234567'' printable = ''0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&/'()*+,-./:;<=>?@[//]^_`{|}~ /t/n/r/x0b/x0c'' punctuation = ''!"#$%&/'()*+,-./:;<=>?@[//]^_`{|}~'' whitespace = '' /t/n/r/x0b/x0c''


[chr(i) for i in range(ord(''a''),ord(''z'')+1)]