【Python】スライスまとめ

コーディング
  • Pythonのスライスについてまとめました
    • リストや文字列から要素を切り出す方法
    • リストに要素を挿入する方法(変則的な使い方?)

リストや文字列から要素を取り出す

  • リスト[【取り出し開始位置】, 【取り出し終了位置】+1] で記述する
    • 開始位置は0から数える(0, 1, 2, ...)
  • リストと同じ考え方で文字列からの切り出しもできる

サンプルコード

# リストから取り出す
letters = ["a", "b", "c", "d", "e", "f"]
pick_letters = letters[2:4]
print("pick letters:", pick_letters)

# 文字列から取り出す
chars = "apple"
pick_chars = chars[2:4]
print("pick chars:", pick_chars)

実行結果

pick letters: ['c', 'd']
pick chars: pl

リストの先頭や途中にリストを挿入

  • 少し変則的な使い方(?)
  • スライス構文でリストに複数の値を挿入する場合
  • 単一の値でも可能だが、その場合はappendinsertの方が(個人的に)使いやすい
リストA[【挿入したい位置】:【挿入したい位置】] = [【リストB】]

サンプルコード

# リスト
letters = ['a', 'b', 'e', 'f']

# インデックス2の位置にcとdを挿入
letters[2:2] = ['c', 'd']
print("cとdの挿入後:", letters)

実行結果

cとdの挿入後: ['a', 'b', 'c', 'd', 'e', 'f']

補足

  • 通常は上述したような、リスト[【開始位置】,【終了位置】]のような使い方をする
    • listA[2:3]
  • 開始位置と終了位置を同じにした場合、空の範囲が選択され、「置き換え」ではなく「挿入」になる
  • 例えばコードのletters[2:2] = ['c', 'd']

    • letters[2:3] = ['c', 'd']にした場合の出力はcとdの挿入後: ['a', 'b', 'c', 'd', 'f']
    • letters[2:4] = ['c', 'd']にした場合の出力はcとdの挿入後: ['a', 'b', 'c', 'd']

    となる

  • 範囲の要素が「挿入」ではなく「置き換わる」

コメント

タイトルとURLをコピーしました