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

広告
eyecatch

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

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

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

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

範囲の指定は、開始インデックスに範囲の最初の要素のインデックス、終了インデックスに範囲の最後の要素のインデックスに +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 つであってもタプルとして取得しますので注意してください。

サンプルプログラム

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 sample3-1.py という名前で保存します。

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

print(animaltuple)
print(animaltuple[1:4])
print(animaltuple[0:2])
print(animaltuple[2:3])

その後で、次のように実行してください。

python sample3-1.py

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

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

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

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

開始インデックスを省略した場合は 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")

サンプルプログラム

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 sample3-2.py という名前で保存します。

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

print(animaltuple)
print(animaltuple[:3])
print(animaltuple[2:])
print(animaltuple[:])

その後で、次のように実行してください。

python sample3-2.py

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

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

-- --

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

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。