C/C++の世界から来て、Python newbであるので、入力文字列(ASCIIであることが保証されている)をとり、最後の4文字を返す単純な文字列関数を書いています。文字数が4文字未満の場合は、「A」という文字で先頭の文字を入力します。 (これは演習ではなく、別の複雑な関数の貴重な部分です)この簡単な文字列関数を "pythonic"にする方法
これを行う方法は数々あります。下の私のアプローチは機能的ではあるが、「Pythonic」のようには見えなかった。
注:私は現在、Python 2.6を使用しています。パフォーマンスは問題ではありません。入力文字列は短く(2〜8文字)、私はこの関数を数千回しか呼び出しません。
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)))
出力は次のようになります。Pythoneersから
The output of 7654321 is 4321
The output of 21 is AA21
提案?
美しく行われました:) – The6thSense
@VigneshKalai - うわー!すごい!もちろん嬉しいです! – SMGreenfield
@SMGreenfield私はそれがクマであると答えることはできませんでした:) – The6thSense