プログラミングにおけるスライスとは、通常、文字列、タプル、リストから、それぞれ部分文字列、部分タプル、部分リストを取得することを指します。
Pythonはこれら3つだけでなく、あらゆるイテラブルをスライスする簡単な方法を提供します。
イテラブルとは、その名の通り、反復処理できるオブジェクトのことです。
この記事では、Pythonのタプルのスライスについて知っておく必要があるすべてのことを説明します。
Pythonでタプルをスライスする
タプルをスライスする方法はいくつかありますが、最も一般的なのは :
演算子を用いて以下の構文で行う方法です。
tuple[start:end]
tuple[start:end:step]
パラメータ start
は開始インデックス、 end
は終了インデックス、 step
は「ステップオーバー」されるアイテムの数です。
もし step
が明示的に与えられていない場合、デフォルトの値は 1
です。
それでは、タプルをスライスしてみましょう。
a_tuple = ('You', 'can’t', 'stop', 'the', 'change,', 'any', 'more', 'than', 'you', 'can', 'stop', 'the', 'suns', 'from', 'setting.')
subtuple = a_tuple[1:5]
print(subtuple)
結果のタプルは
('can’t', 'stop', 'the', 'change,')
タプルの最初と最後のn個の要素を見つける
タプルの最初の要素と最後の要素 n
を見つけるには、最初の要素から n
までをスライスし、次に -n
からタプルの終わりまでをスライスします。
nはタプルの最後から逆にカウントし始め、最後の
n` 個の要素を得ます。
n = 2
a_tuple = ('I', 'find', 'your', 'lack', 'of', 'faith', 'disturbing.')
first_n_tuple = a_tuple[:n]
print(first_n_tuple)
last_n_tuple = a_tuple[-n:]
print(last_n_tuple)
その結果、サブタプルは次のようになります。
('I', 'find')
('faith', 'disturbing.')
スライス記法による逆タプル
stepパラメータに
-1` を指定すると、逆方向のステップを開始する。
もし、タプルの全体、あるいは一部を含み、ただ後方にステップするのであれば、タプルの内容を効果的に逆転させることができる。
a_tuple = ('Fear', 'is', 'the', 'path', 'to', 'the', 'dark', 'side.', 'Fear', 'leads', 'to', 'anger;', 'anger', 'leads', 'to', 'hate;', 'hate', 'leads', 'to', 'suffering.', 'I', 'sense', 'much', 'fear', 'in', 'you.', 7)
reverse_tuple = a_tuple[::-1]
print(reverse_tuple)
反転されたタプルは次のようになります。
(7, 'you.', 'in', 'fear', 'much', 'sense', 'I', 'suffering.', 'to', 'leads', 'hate', 'hate;', 'to', 'leads', 'anger', 'anger;', 'to', 'leads', 'Fear', 'side.', 'dark', 'the', 'to', 'path', 'the', 'is', 'Fear')
タプルのn番目の要素をすべて求める
タプルのn番目の要素を見つけるには、ステップを n
とすることで、非n
個の要素をすべて飛び越えます。
n = 5
a_tuple = ('The', 'dark', 'side', 'of', 'the', 'Force', 'is', 'a', 'pathway', 'to', 'many', 'abilities', 'some', 'consider', 'to', 'be', 'unnatural.')
replaced_tuple = a_tuple[::n]
print(replaced_tuple)
これはタプルの結果となる。
('The', 'Force', 'many', 'be')
結論
Pythonで任意のシーケンスをスライスするのは簡単で、シンプルで、直感的です。
ネガティブインデックスは、シーケンスの最初または最後の数個の要素を取得したり、その順序を逆転させたりする簡単な方法を提供します。
今回は、Pythonでタプルにスライス記法を適用する方法を説明しました。