Ich bin neu in Python und komme aus Java und C. Wie kann ich ein Zeichen erhöhen? In Java oder C sind Zeichen und Ints praktisch austauschbar, und in bestimmten Schleifen ist es für mich sehr nützlich, Zeichen inkrementieren und Arrays nach Zeichen indizieren zu können.
Wie kann ich das in Python machen? Es ist schon schlimm genug, keinen traditionellen (;;) Looper zu haben - gibt es eine Möglichkeit, das zu erreichen, was ich erreichen möchte, ohne meine gesamte Strategie überdenken zu müssen?
for
Schleife :for i in range(50): do_something_with(i)
. Komm schon, das ist nicht so schlimm !![''.join(i) for i in itertools.product(string.ascii_lowercase, repeat=2)]
Antworten:
Verwenden Sie in Python 2.x einfach die Funktionen
ord
undchr
:Python 3.x macht dies aufgrund seiner klaren Unterscheidung zwischen Bytes und Unicode organisierter und interessanter. Standardmäßig ist eine "Zeichenfolge" Unicode, daher funktioniert das oben Gesagte (
ord
empfängt Unicode-Zeichen undchr
erzeugt sie).Wenn Sie jedoch an Bytes interessiert sind (z. B. für die Verarbeitung eines binären Datenstroms), sind die Dinge noch einfacher:
quelle
"Schlimm genug, keinen traditionellen (;;) Looper zu haben" ?? Was?
Versuchst du es zu tun?
Oder vielleicht benutzt du
string.uppercase
oderstring.letters
?Python hat keine,
for(;;)
weil es oft bessere Möglichkeiten gibt, dies zu tun. Es gibt auch keine Charaktermathematik, da dies auch nicht erforderlich ist.quelle
Ich komme aus PHP, wo Sie char (A nach B, Z nach AA, AA nach AB usw.) mit dem Operator ++ erhöhen können. Ich habe eine einfache Funktion erstellt, die in Python dasselbe tut. Sie können die Liste der Zeichen auch nach Belieben ändern (Kleinbuchstaben, Großbuchstaben usw.).
quelle
Es gibt eine Möglichkeit, das Zeichen mithilfe
ascii_letters
desstring
Pakets zu erhöhen. Hierbei handeltascii_letters
es sich um eine Zeichenfolge, die alle englischen Buchstaben, Groß- und Kleinbuchstaben enthält:Es kann auch manuell erfolgen;
quelle
Überprüfen Sie dies: USING FOR LOOP
for a in range(5): x='A' val=chr(ord(x)+a) print(val)
AUSGABE: ABCBDE
quelle
Ausgabe:
quelle