2
0

【python】スライスを使って文字列を反転させる

Posted at

概要

  • 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 未満の文字列が取得される

    • startend は省略可能で、省略した場合は先頭から末尾まで取得される

      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
    

まとめ

書き方を忘れてしまうのでメモがてら記載しました。
もっと良い方法があれば教えてください。

参考

2
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0