Python基礎編:set 要素の追加と削除

前回は、setの基礎知識について説明しました。今回は、要素の追加と削除について説明していきます。
setの要素の追加
setはミュータブル(変更可能)なオブジェクトなので、リストと同じように変更ができます。setの要素を追加するには、「add()メソッド」を使用します。
以下が出力結果です。
きちんと「blue」が追加されていますね。また、次のように追加してみるとします。
出力結果
1行目にsetの要素として「red,blue」とあります。そこに「blue」を追加してみました。リストでは追加すると、同じ要素名でも後ろに追加されましたが、今回は初めに入力したコードの要素から何も変わっていません。
setには「要素が重複しないように管理される」という性質があるということを前回の記事で説明しました。追加するときも、同じ要素名かどうかを判断して、追加されるのです。
setの要素の削除
要素の削除には以下の4つの方法があります。削除の仕方によって使い分けます。
- remove()メソッド:指定の要素の削除(存在しない値を指定した場合エラーあり)
- discard()メソッド:指定の要素の削除(存在しない値を指定した場合でもエラーなし)
- pop()メソッド:要素をランダムに取り出して削除
- clear():setの要素をすべて削除
remove()メソッド
remove()は指定の要素の削除ができます。基本的な使い方は以下の通りです。
変数名.(ドット)remove(削除したい要素名)
では、作ったsetから「4」という要素を削除してみます。
以下が出力結果です。
「4」だけが削除されました。ちなみにこの「remove()メソッド」は存在しない値を指定した場合はエラーが出ます。要素にない「6」を指定してみましょう。
以下が出力結果です。
「KeyError:6」とエラーが出ました。「6という指定はおかしいよ。」という意味です。
discard()メソッド
続いてはdiscardです。
このメソッドも「remove()」と同じように、指定した要素の削除ができます。ただ、「存在しない値を指定した場合にエラーがでない」という違いがあります。
「remove()メソッド」で試したsetと同じようにコードを書いてみましょう。
以下が出力結果です。
エラーにはならずに無視されています。
エラーになる場合、ならない場合を想定して、コードを使い分けることができます。
pop()メソッド
リストやディクショナリの学習でもでてきた「pop()メソッド」です。リストやディクショナリでは、インデックス番号やkeyを指定することでその要素の削除ができました。しかし、setの場合はリストやディクショナリと同じように考えて使ってしまうと大変です。
まず、リストでの「pop()」の使い方を見てみましょう。
fruit = ['りんご','オレンジ','レモン','バナナ','いちご']
上記から、popを使っていちごを削除してみます。
引数に削除したい要素を入れています。そして実行すると、
削除したい要素だけを削除することができました。では、次にsetでの「pop()」の使い方を見てみましょう。
以下が出力結果です。
リストとは違って、引数になにも要素を入れていません。これは、setでの「pop()メソッド」は、ランダムに要素を取り出して削除するからです。どの要素を取り出すかは、setによって異なるので分かりません。今回のコードでは「1」を取り出して削除しています。
popの後ろの()に引数を入力するとエラーが出ます。
以下が出力結果です。
「TypeError: pop() takes no arguments (1 given)」は「pop()は引数を受け取りません」という意味です。
setのpop()は、リストやタプル、ディクショナリと使い方が異なるので、間違わないように気を付けましょう。
clear()メソッド
最後に「clear()メソッド」です。これは、setの要素をすべて削除します。要素のみの削除なので、変数自体は削除されずに、空のsetが残ります。
以下が出力結果です。
空のsetだけが残りました。
まとめ
setの追加と削除を説明しました。リストやタプル、ディクショナリを学んだ後だと、簡単に感じられるのではないでしょうか。
次回はsetを使う上で重要な「集合」ついて説明します。
あなたにオススメの記事