前回は、タプルの要素にアクセスする方法について扱いました。
次に、タプルを連結したり、タプルをスライスする方法についてみていきましょう。
タプルを連結する
例えば、以下のように複数のタプルを組み合わせた新しいタプルを作りたいとします。
1 2 3 | tuple1 = ( "Hello" , "Python!" ) tuple2 = ( "Hello" , "Tuple!" ) ###("Hello", "Python!", "Hello", "Tuple!") という4つの要素を持つタプルを作りたい |
リストであれば、append() や insert() といったメソッドを使ってあるリストに対して
要素を追加することができます。
ただし、タプルはイミュータブル、つまり要素を追加/変更/削除などを行うことができません。
ですので、タプルには要素を追加するようなメソッドは用意されていません。
なので、リストと同じようにシンプルに複数のタプルを連結します。
1 2 3 4 | tuple1 = ( "Hello" , "Python!" ) tuple2 = ( "Hello" , "Tuple!" ) tuple3 = tuple1 + tuple2 print (tuple3) |
(‘Hello’, ‘Python!’, ‘Hello’, ‘Tuple!’)
タプルには要素の追加は行えません。なので、上記の例では元の2つのタプルはそのままで
1つ目と2つ目のタプルの要素を用いて新しい3つ目のタプルを作成しています。
このように、タプルは文字列の結合と同様に+演算子を用いて連結することができます。
また、以下のように*演算子を用いて、1つのタプルを複数連結したタプルを作成することもできます。
1 2 3 | tuple1 = ( "Hello" , "Python!" ) tuple2 = tuple1 * 3 print (tuple2) |
(‘Hello’, ‘Python!’, ‘Hello’, ‘Python!’, ‘Hello’, ‘Python!’)
タプルをスライスする
また、タプルではスライスも文字列やリスト同様に行うことができます。
スライスとは、以下の記事で紹介している文字列などの中から一部分を取り出す操作のことです。
タプルでのスライスは以下のように記述します。
それでは、実際にタプルからスライスを使って要素を取り出してみましょう。
1 2 3 4 | name = ( "baki" , "yujiro" , "doppo" , "retu" , "kaoru" , "jack" , "gouki" , "izo" ) print (name) print (name[ 1 : 5 ]) ###2番目から5番目までの要素を取り出す print (name[:: 2 ]) ###要素を1つ飛ばしで取り出す |
(‘baki’, ‘yujiro’, ‘doppo’, ‘retu’, ‘kaoru’, ‘jack’, ‘gouki’, ‘izo’)
(‘yujiro’, ‘doppo’, ‘retu’, ‘kaoru’)
(‘baki’, ‘doppo’, ‘kaoru’, ‘gouki’)
以上のように、スライスを利用してタプルの要素の中から特定の一部だけを取り出すことができます。
まとめ
・+演算子や*演算子を用いることでタプルを連結し、新しいタプルを作成することができる。
・スライスを利用して、タプルの要素の中から一部分を取り出すことができる。
確認問題
1.以下の2つのタプルを連結し、新しいタプルを作成してみましょう。
name1 = (“フォス”, “シンシャ”, “ダイヤ”, “ボルツ”, “レッドベリル”)
name2 = (“ルチル”, “ゴーシェ”, “ユークレース”, “アンターク”, “ジェード”)
2.上で連結したタプルから、以下の条件で要素を取り出してみましょう。
・要素の2番目から8番目を1つ飛ばしで取り出す