自然言語処理
python3
言語処理100本ノック
テキスト処理

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