- 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
リストの先頭や途中にリストを挿入
- 少し変則的な使い方(?)
- スライス構文でリストに複数の値を挿入する場合
- 単一の値でも可能だが、その場合は
append
やinsert
の方が(個人的に)使いやすい
リスト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']
となる
- 範囲の要素が「挿入」ではなく「置き換わる」
コメント