営業時間:平日9:00~17:00

プログラミング

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

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

前回は、setの基礎知識について説明しました。今回は、要素の追加と削除について説明していきます。

Python基礎編: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を使う上で重要な「集合」ついて説明します。

あなたにオススメの記事

銀座ソニーパークの「WALKMAN IN THE PARK」

銀座ソニーパークの「WALKMAN IN THE PARK」

4月21日は任天堂が携帯型ゲーム機ゲームボーイを発売した日

元小学校教師がプログラミング必修化について考えてみたよ

おいしいかわいい料理写真の撮り方を読んでお土産を撮ってみた(光の取り入れ方編)

おいしいかわいい料理写真の撮り方を読んでお土産を撮ってみた(光の取り入れ方編)

第2回ふるさと大収穫祭お酒とおつまみフェスティバルin日比谷

第2回ふるさと大収穫祭お酒とおつまみフェスティバルin日比谷

8月5日はタクシーの日

8月5日はタクシーの日

8月4日は日本でiTunes Music Storeのサービスが開始された日

8月4日は日本でiTunes Music Storeのサービスが開始された日

9月23日はウェブブラウザ「Firefox 」の初版公開日

9月23日はウェブブラウザ「Firefox 」の初版公開日

第60回いたばし花火大会2019で花火の写真を撮ってみました

第60回いたばし花火大会2019で花火の写真を撮ってみました

iPadとApple Pencilでペーパーレス化

MacBook Air 13インチはMid2017とLate2018のどちらが人気か

MacBook Air 13インチはMid2017とLate2018のどちらが人気か

近年よく聞くAIとは何でしょうか

Python基礎編:if文による条件分岐

Python基礎編:if文による条件分岐

日本語能力があるかないかで人生どうなるかって話

日本語能力があるかないかで人生どうなるかって話

8月6日は太陽熱発電の日

8月6日は太陽熱発電の日

SPONSOR