C/C++ dünyasından gelen ve bir Python newb'si olarak, bir giriş dizesini (ASCII olması garantili) alan ve son dört karakteri döndüren bu basit dize işlevini yazdım. Dört karakterden azsa, önde gelen konumları ‘A’ harfi ile doldurmak istiyorum. (Bu bir alıştırma değil, başka bir karmaşık işlevin değerli bir parçasıydı)Bu basit dize işlevi nasıl yapılır "pythonic"
Bunu kaba kuvvetlerden basit, zariflere kadar yapmak için düzinelerce yöntem vardır. Aşağıdaki yaklaşımım, işlevsel iken, "Pythonic" görünmüyordu.
Not: Şu anda Python 2.6 kullanıyorum - ve performans bir sorun DEĞİLDİR. Giriş dizeleri kısa (2-8 karakter), ve bu işlevi sadece birkaç bin kez çağırıyorum.
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)))
çıktısı: Pythoneers dan
The output of 7654321 is 4321
The output of 21 is AA21
Öneriler?
güzel bitti :) – The6thSense
@VigneshKalai - Vay! Bu harika! Tabii ki sorduğuma sevindim! – SMGreenfield
@SMGreenfield Ben anand s kumar olduğunu cevap vermedim :) – The6thSense