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

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

(Last modified: )

タプルでスライス機能を使用する

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

タプル[開始インデックス:終了インデックス]

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

mytuple = ("A", "B", "C", "D", "E")

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

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

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

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

サンプルコード

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

animaltuple = ("Cat", "Lion", "Cow", "Dog", "Giraffe")

print(animaltuple[1:4])
>> ('Lion', 'Cow', 'Dog')
print(animaltuple[0:2])
>> ('Cat', 'Lion')
print(animaltuple[2:3])
>> ('Cow',)

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

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

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

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

mytuple = ("A", "B", "C", "D", "E")

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

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

mytuple = ("A", "B", "C", "D", "E")

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

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

mytuple = ("A", "B", "C", "D", "E")

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

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

animaltuple = ("Cat", "Lion", "Cow", "Dog", "Giraffe")

print(animaltuple[:3])
>> ('Cat', 'Lion', 'Cow')
print(animaltuple[2:])
>> ('Cow', 'Dog', 'Giraffe')
print(animaltuple[:])
>> ('Cat', 'Lion', 'Cow', 'Dog', 'Giraffe')

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

-- --

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

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

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