Anstatt eine Liste von Alphabetzeichen wie folgt zu erstellen:
alpha = ['a', 'b', 'c', 'd'.........'z']
Gibt es eine Möglichkeit, es zu einem Bereich oder etwas zu gruppieren? Für Zahlen kann es beispielsweise gruppiert werden mit range()
:
range(1, 10)
string.ascii_lowercase
(verfügbar auf beiden) und nichtstring.lowercase
(nur auf py2)Antworten:
Wenn Sie wirklich eine Liste brauchen:
Und damit zu tun
range
Weitere hilfreiche
string
Modulfunktionen:quelle
string.ascii_lowercase[::-1]
map
gibt keinlist
quelle
string.ascii_lowercase
chrange = lambda s: "".join(map(chr, range(*map(ord, s))) + [c[1]])
. Verwendung :>>> chrange("az") -> 'abcdefghijklmnopqrstuvwxyz'
. Für eine Liste entfernen Sie einfach"".join( )
import string
ist eine lange Erklärung?In Python 2.7 und 3 können Sie Folgendes verwenden:
Wie @Zaz sagt:
string.lowercase
ist veraltet und funktioniert nicht mehr in Python 3, sondernstring.ascii_lowercase
in beidenquelle
string.ascii_letters
,string.ascii_lowercase
,string.ascii_uppercase
alle Arbeiten in Python 3+.list(string.ascii_lowercase)
Hier ist eine einfache Implementierung im Buchstabenbereich:
Code
Demo
quelle
Wenn Sie nach einem Äquivalent
letters[1:10]
von R suchen , können Sie Folgendes verwenden:quelle
Drucken Sie die Groß- und Kleinbuchstaben in Python mit einer integrierten Bereichsfunktion
quelle
Dies ist der einfachste Weg, den ich herausfinden kann:
#!/usr/bin/python3 for i in range(97, 123): print("{:c}".format(i), end='')
97 bis 122 sind also die ASCII-Nummer, die 'a' bis 'z' entspricht. Beachten Sie die Kleinbuchstaben und die Notwendigkeit, 123 zu setzen, da diese nicht enthalten sind.
Stellen Sie in der Druckfunktion sicher, dass Sie das
{:c}
(Zeichen-) Format festlegen. In diesem Fall möchten wir, dass alles zusammen gedruckt wird, ohne dass am Ende eine neue Zeileend=''
angezeigt wird.Das Ergebnis ist folgendes:
abcdefghijklmnopqrstuvwxyz
quelle