【Python】タプルに要素を追加する

今回の記事ではタプルに要素を追加する方法を解説していきます。タプルは本来要素の追加や変更、削除を行うことができません。タプルの中身を変更したい時の基本方針はタプルを一度リストに変更して要素の追加・変更を行いもう一度タプルに戻すといったやり方です。

別のタプルを用意してくっつける

+演算子を使ってくっつけることでタプルに要素を追加することができます。

spaghetti = ('たらこ', 'カルボナーラ', 'ミート')

# appendのようなメソッドは定義されていない
# しかし+演算子を使うことで複数のタプルを連結することができる。
spaghetti2 = ('イカ墨', 'バジル')
spaghetti = spaghetti + spaghetti2
print(spaghetti)

実行結果

('たらこ', 'カルボナーラ', 'ミート', 'イカ墨', 'バジル')

一つだけ要素を追加したい場合でもシンプルに追加することはできず、要素一つのタプルを用意して追加する必要がある。

# 一つだけ要素を追加したい場合は一つの要素を持つタプルとして連結する
print(spaghetti + ('エビ',))

実行結果

('たらこ', 'カルボナーラ', 'ミート', 'イカ墨', 'バジル', 'エビ')



先頭や末尾以外に要素を追加したい時

タプルの先頭や末尾に追加する場合には+演算子を使うことで解決できましたが、タプルの途中に追加したい場合には一度リストに変更して追加したのち、もう一度タプルに戻す必要があります。

# 先頭や末尾以外に要素を追加したい場合は一度リストに変換して行う
spaghetti_list = list(spaghetti)
spaghetti_list.insert(3, 'エビ')
# 追加が終わったリストを再びタプルに戻す
spaghetti = tuple(spaghetti_list)
print(spaghetti)

実行結果

('たらこ', 'カルボナーラ', 'ミート', 'エビ', 'イカ墨', 'バジル')

要素の変更を行う場合

要素の変更を行いたい場合でもタプルを一度リストに変更します。

# 要素を変更する場合でも一度リストに変換してから行う
spaghetti_list = list(spaghetti)
spaghetti_list[0] = '明太子'
spaghetti = tuple(spaghetti_list)
print(spaghetti)

実行結果

('明太子', 'カルボナーラ', 'ミート', 'エビ', 'イカ墨', 'バジル')

 



削除を行う

削除を行う場合も同じくリストに変更します。

spaghetti = ('たらこ', 'カルボナーラ', 'ミート', 'イカ墨', 'バジル')
print(spaghetti)
spaghetti_list = list(spaghetti)
spaghetti_list.remove('カルボナーラ')
spaghetti = tuple(spaghetti_list)
print(spaghetti)

実行結果

('たらこ', 'カルボナーラ', 'ミート', 'イカ墨', 'バジル')
('たらこ', 'ミート', 'イカ墨', 'バジル')

また削除はスライスを使ってあたかも削除したかのように振舞わせることもできます。今回の例ではスライスによって1~3番目の要素が新しいタプルに追加されて最初と最後が削除されたかのようなタプルになります。

spaghetti = ('たらこ', 'カルボナーラ', 'ミート', 'イカ墨', 'バジル')
print(spaghetti)
spaghetti = spaghetti[1:4]
print(spaghetti)

実行結果

('たらこ', 'カルボナーラ', 'ミート', 'イカ墨', 'バジル')
('カルボナーラ', 'ミート', 'イカ墨')

コメント

タイトルとURLをコピーしました