Au lieu de faire une liste de caractères alphabétiques comme ceci:
alpha = ['a', 'b', 'c', 'd'.........'z']
existe-t-il un moyen de le regrouper dans une plage ou quelque chose? Par exemple, pour les nombres, il peut être groupé en utilisant range()
:
range(1, 10)
string.ascii_lowercase
(disponible sur les deux) et nonstring.lowercase
(uniquement sur py2)Réponses:
Si vous avez vraiment besoin d'une liste:
Et pour le faire avec
range
Autres fonctionnalités utiles du
string
module:la source
string.ascii_lowercase[::-1]
map
ne renvoie pas delist
la source
string.ascii_lowercase
chrange = lambda s: "".join(map(chr, range(*map(ord, s))) + [c[1]])
. Utilisation:>>> chrange("az") -> 'abcdefghijklmnopqrstuvwxyz'
. Pour une liste, il suffit de supprimer"".join( )
import string
est une longue explication?En Python 2.7 et 3, vous pouvez utiliser ceci:
Comme @Zaz le dit:
string.lowercase
est obsolète et ne fonctionne plus en Python 3 maisstring.ascii_lowercase
fonctionne dans les deuxla source
string.ascii_letters
,string.ascii_lowercase
,string.ascii_uppercase
tout le travail en python 3+.list(string.ascii_lowercase)
Voici une implémentation simple de plage de lettres:
Code
Démo
la source
Si vous recherchez un équivalent de
letters[1:10]
from R, vous pouvez utiliser:la source
Imprimez les alphabets majuscules et minuscules en python à l'aide d'une fonction de plage intégrée
la source
Voici la façon la plus simple de comprendre:
#!/usr/bin/python3 for i in range(97, 123): print("{:c}".format(i), end='')
Ainsi, 97 à 122 sont le nombre ASCII équivalent à «a» à et «z». Notez les minuscules et la nécessité de mettre 123, car il ne sera pas inclus).
Dans la fonction d'impression, assurez-vous de définir le
{:c}
format (caractère), et, dans ce cas, nous voulons qu'il imprime tout ensemble sans même laisser une nouvelle ligne à la fin, alorsend=''
ferait le travail.Le résultat est le suivant:
abcdefghijklmnopqrstuvwxyz
la source