Pythonのシーケンスオブジェクト

文字列やリスト、タプルはシーケンスオブジェクトです。

ここでは、シーケンス共通の特徴や活用のTipsをまとめます。

インデクシング

シーケンスは複数項目を順序を持って並べたものなので、各要素にポジション指定でアクセスできます。ポジションの考え方は下記です。

  • 先頭が0
  • -1が末尾(先頭が0でそこから一つ後ろで末尾から数えると覚えれば良い)
# 準備
>>> x = list(range(10))
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# インデクシング
>>> x[0], x[1], x[-1], x[-2]
(0, 1, 9, 8)

スライシング

スライシングでは、1回の操作でシーケンスの一部を抽出できます。

  • 記法はSequence[開始位置, 終了位置, 増加量]です。
  • 終了位置は抽出対象ではなく、その直前まで。
  • 開始位置の省略は、先頭まで
  • 終了位置の省略は、末尾まで
  • 増加量の省略は、1
# 準備
>>> x = list(range(10))
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 終了位置は含まれない
>>> x[1:3]
[1, 2]

# 開始位置の省略
>>> x[:3]
[0, 1, 2]

# 終了位置の省略
>>> x[1:]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

# 全部省略。この場合、リストのコピーとなる。
>>> x[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# リバース
>>> x[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

# 偶数のみ
>>> x[::2]
[0, 2, 4, 6, 8] 

シェアする

  • このエントリーをはてなブックマークに追加

フォローする