Ich schreibe eine Funktion, um eine 3-Buchstaben (a-z) Zeichenfolge zu inkrementieren. Zum Beispiel:
Eingang: aaa
Ausgang: baaInkrementieren Zeichenfolge in Python
Eingang: ZBA
Ausgang: aca
So wird die Reihenfolge wie folgt
aaa
baa
...
zaa
aba
bba
cba
...
zba
aca
bca
cca
...
zca
ada
...
zzz
aaa
Ich schrieb folgendes f Salbung next_code()
und es funktioniert, aber ich frage mich, ob es eine elegantere Weg ist, es zu implementieren und nicht durch einzelne Buchstaben im String Looping:
# 0 = a; 25 = z
def digit_to_char(digit):
return chr(ord('a') + digit)
# a = 0; z = 25
def char_to_digit(char):
return ord(char)-ord('a')
def next_code(code):
# if used up all codes, loop from start
if code == 'zzz':
return next_code('aaa')
else:
code = list(code)
# loop over letters and see which one we can increment
for (i, letter) in enumerate(code):
if letter == 'z':
# go on to the next letter
code[i] = 'a'
continue
else:
# increment letter
code[i] = digit_to_char(char_to_digit(letter) + 1)
return ("".join(code))
break
print (next_code('aab'))
wow tolle Antwort ... Sie abgedeckt so viele Basen für diesen Kerl +1 von mir :) –
@JoranBeasley: TIMTOWTDI? :-) Und ich finde sie alle gerne. Ich habe mit Perl angefangen. – ShadowRanger
TSBO - APOO - OWTDI: P (lol) –