概要
- 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
まとめ
書き方を忘れてしまうのでメモがてら記載しました。
もっと良い方法があれば教えてください。