スライスを使ってリストの指定した範囲の要素が含まれる新しいリストを取得する

リストではスライスという機能を使うことで、開始位置のインデックスから終了位置のインデックスまでの要素を含む新しいリストを取得することができます。ここではスライス機能を使ってリストから指定した範囲の要素が含まれる新しいリストを取得する方法について解説します。

(Last modified: )

リストでスライス機能を使用する

作成済みのリストに対してスライス機能を使用すると、開始位置から終了位置までの指定した範囲にある要素を含む新しいリストを取得することができます。書式は次の通りです。

リスト[開始インデックス:終了インデックス]

範囲を指定する方法ですが、範囲の最初の要素のインデックスを開始インデックスに指定し、範囲の最後の要素のインデックスに +1 した値を終了インデックスとして指定します。次の例を見て下さい。

mylist = ["A", "B", "C", "D", "E"]

#インデックス 1 から 3 までの要素を取得する
mylist[1:4]
>> ["B", "C", "D"]

#インデックス 0 から 2 までの要素を取得する
mylist[0:3]
>> ["A", B", "C"]

#インデックス 3 の要素を取得する
mylist[3:4]
>> ["D"]

スライスを使うと指定した範囲の要素が含まれる新しいリストを取得することができます。要素が 1 つであってもリストとして取得しますので注意してください。

サンプルコード

次のサンプルを見てください。

colorlist = ["Blue", "Red", "Green", "White", "Black"]

print(colorlist[1:3])
>> ['Red', 'Green']

print(colorlist[2:3])
>> ['Green']

スライスを使って作成済のリストから一部の要素が含まれる新しいリストを取得することができました。

開始インデックスまたは終了インデックスを省略する

スライス機能を使用するときに、開始インデックスまたは終了インデックスを省略することができます。

開始インデックスを省略した場合は 0 が指定されたものとみなされます。 0 はリストの最初の要素のインデックスなので、開始インデックスを省略した場合はリストの最初の要素から指定した終了インデックスまでが範囲となります。

mylist = ["A", "B", "C", "D", "E"]

#インデックスの最初から 3 までの要素を取得する
mylist[:4]
>> ["A", B", "C", "D"]

終了インデックスを省略した場合は len(リスト) の値が指定されたものとみなされます。 len 関数の引数にリストを指定した場合はリストの要素数を返しますので、終了インデックスを省略した場合は指定した開始インデックスからリストの最後の要素までが範囲となります。

mylist = ["A", "B", "C", "D", "E"]

#インデックス 2 から最後までの要素を取得する
mylist[2:]
>> [C", "D", "E"]

開始インデックスと終了インデックスを共に省略した場合は、リストの最初の要素から最後の要素までが範囲となるので、元のリストのすべての要素が含まれる新しいリストを取得することになります。

mylist = ["A", "B", "C", "D", "E"]

#インデックスの最初から最後までの要素を取得する
mylist[:]
>> ["A", "B", "C", "D", "E"]
サンプルコード

次のサンプルを見てください。

colorlist = ["Blue", "Red", "Green", "White", "Black"]

print(colorlist[:3])
>> ['Blue', 'Red', 'Green']

print(colorlist[2:])
>> ['Green', 'White', 'Black']

print(colorlist[:])
>> ['Blue', 'Red', 'Green', 'White', 'Black']

スライスを使用する時に開始インデックスまたは終了インデックスを省略して範囲を指定しました。

-- --

スライス機能を使ってリストから指定した範囲の要素が含まれる新しいリストを取得する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。