Provenendo dal mondo C/C++ ed essendo un newb Python, ho scritto questa semplice funzione di stringa che accetta una stringa di input (garantita per essere ASCII) e restituisce gli ultimi quattro caratteri. Se ci sono meno di quattro caratteri, voglio riempire le posizioni iniziali con la lettera "A". (questo non era un esercizio, ma una parte preziosa di un'altra funzione complessa)Come rendere semplice questa funzione di stringa "pythonic"
Ci sono dozzine di metodi per farlo, dalla forza bruta, al semplice, all'elegante. Il mio approccio in basso, sebbene funzionale, non sembrava "Pythonic".
NOTA: attualmente sto usando Python 2.6 e le prestazioni NON sono un problema. Le stringhe di input sono brevi (2-8 caratteri) e chiamo questa funzione solo alcune migliaia di volte.
def copyFourTrailingChars(src_str):
four_char_array = bytearray("AAAA")
xfrPos = 4
for x in src_str[::-1]:
xfrPos -= 1
four_char_array[xfrPos] = x
if xfrPos == 0:
break
return str(four_char_array)
input_str = "7654321"
print("The output of {0} is {1}".format(input_str, copyFourTrailingChars(input_str)))
input_str = "21"
print("The output of {0} is {1}".format(input_str, copyFourTrailingChars(input_str)))
L'output è:
The output of 7654321 is 4321
The output of 21 is AA21
Suggerimenti da Pythoneers?
splendidamente fatto :) – The6thSense
@VigneshKalai - Wow! È fantastico! Sicuro sono contento di averlo chiesto! – SMGreenfield
@SMGreenfield Non ho risposto che era anand s kumar :) – The6thSense