概要
- Python のスライスについて便利な記載方法について説明します。
- 書き方を忘れてしまうのでメモがてら記載します。
TL;DR
-
test_str[::-1]で文字列を反転させることができます。 - 文字列判定すさせることで、回文判定などに利用できます。
スライスの基本的な使用方法
❗ スライスの基本的な使用方法を知っている場合は、この章をスキップしてください。
-
テストデータを定義
test_str = 'abcdefg' -
先頭から文字を取得する
test_str[0] # 'a' test_str[1] # 'b' test_str[2] # 'c' -
末尾から文字を取得する
test_str[-1] # 'g' test_str[-2] # 'f' test_str[-3] # 'e' -
取得する範囲を指定する
-
str[start:end]でstartの index 以上endの index 未満の文字列が取得される -
startとendは省略可能で、省略した場合は先頭から末尾まで取得されるtest_str[1:3] # 'bc' test_str[2:5] # 'cde' # start を省略した場合 test_str[:3] # 'abc' # end を省略した場合 test_str[-3:] # 'efg'
-
-
〇文字飛ばしで取得する
-
str[start:end:step]でstartの index 以上endの index 未満の文字列がstep文字飛ばしで取得される# 1文字飛ばし test_str[::2] # 'aceg' # 2文字飛ばし test_str[::3] # 'adg' # 3文字飛ばし test_str[::4] # 'ae'
-
文字列を反転させる
test_str[::-1]
# 'gfedcba'
-
配列でも同様のことができます
test_list = [1, 2, 3, 4, 5] test_list[::-1] # [5, 4, 3, 2, 1]
このように、スライスを使うことで回文を判定することも可能です。
test_str = 'level'
if test_str == test_str[::-1]:
print('回文です')
else:
print('回文ではありません')
# 回文です
その他 応用編
文字列を回転させる
-
たとえば、
'abcdefg'を1文字ずつ回転させる場合test_str = 'abcdefg' for i in range(len(test_str)): test_str = test_str[1:] + test_str[0] print(test_str) # bcdefga # cdefgab # defgabc # efgabcd # fgabcde # gabcdef # abcdefg
まとめ
書き方を忘れてしまうのでメモがてら記載しました。
もっと良い方法があれば教えてください。