schedule2018-07-12

00. 文字列の逆順

はじめに

言語処理100本ノック 2015

Pythonを勉強するため、東京工業大学の岡崎教授が出題されている言語処理100本ノック 2015を解いていきます。

より深く理解するため、別解や利用したライブラリの解説もまとめていきます。

環境

Python3.6

OS : mac lint : pep8

問題

00. 文字列の逆順
文字列"stressed"の文字を逆に(末尾から先頭に向かって)並べた文字列を得よ.

解答:str[::-1]

# 回答2

word = "stressed"
rev_word = word[::-1]
print(rev_word)

出力

desserts

解説

コロンを挟んだ位置はそれぞれ[start:stop:step]となっています。
3番目のstepが正のとき、要素を間引きします。

word = "1234567890"
rev_word = word[::1]
>>> 1234567890
rev_word = word[::2]
>>> 13579
rev_word = word[::3]
>>> 1470

3番目のstepが負のとき、逆順に要素を間引きします。

word = "1234567890"
rev_word = word[::-1]
>>> 0987654321
rev_word = word[::-2]
>>> 08642
rev_word = word[::-3]
>>> 0741

別解1:reverced()

word = "stressed"
rev_word = "".join(reversed(list(word)))
print(rev_word) 

出力

desserts

解説

reverced()はリストの逆順を返す関数です。
wordは文字列であるため、reverced(word)は受け付けません。 文字列をリストに変換するlist()を挟んで渡します。

リストを結合するときは"".join()を利用します。""","とするとカンマ区切りの文字列が出来ます。

",".join(['a','b','c'])
>>> a,b,c

続いての記事

Python3で言語処理100本ノックまとめ

次の問題:01. 「パタトクカシーー」