Pythonは簡潔で直感的に書けて非常に気持ちよくコーディングができてます。
早速実装を見ていきましょう。
#実装
01.問題:「パタトクカシーー」という文字列の1,3,5,7文字目を取り出して連結した文字列を得よ.
文字列から取得する位置が1,3,5,7と奇数だったので
以下を試して見ました。
Python3
s = 'パタトクカシーー'
print(s[::2])
実行結果
パトカー
問題なさそう。一つ飛ばしで文字列取得するプログラムがめちゃ短くできました。
物足りない人は別の実装パターンを下記に記載しましたのでどうぞ。
#別パターン
規則性がない場合も考えて以下のように実装しました。
python3
s = 'パタトクカシーー'
match_list = [1,3,5,7]
answer = ""
i = 1
for chara in s:
if i in match_list:
answer += chara
i += 1
print(answer)
結果
パトカー
これはさらに以下のようにjoin()を使うと
データ出力フォーマットも広く対応できます。
join()を使った場合だと、以下のようなリスト内包表記が読みやすいと感じてます。
あと、文字列シーケンスをループするときにenumerate()だとインデックスも取得できて楽ですね。
python3
s = 'パタトクカシーー'
match_list = [1,3,5,7]
answer = "".join([chara for i, chara in enumerate(s) if i+1 in match_list])
print(answer)
結果
パトカー
##NGシーン
python3
s = 'パタトクカシーー'
match_list = [1,3,5,7]
answer = []
i = 1
for chara in s:
if i in match_list:
answer.append(chara)
i += 1
print(answer)
結果
['パ', 'ト', 'カ', 'ー']
愛くるしい凡ミスですが、僕はやりがちです。
以上です!
#参照URL
問題文は:http://www.cl.ecei.tohoku.ac.jp/nlp100/
strオブジェクトに関して:https://docs.python.jp/3/library/stdtypes.html#str