Pythonでset型オブジェクトに要素を追加する方法を現役エンジニアが解説【初心者向け】
初心者向けにPythonでset型オブジェクトに要素を追加する方法について現役エンジニアが解説しています。set型とは、集合を表すデータ構造です。set型オブジェクトの特徴として、データの順序が無いこと、重複が無いことがあげられます。集合として和集合や差や共通部分を求めることが出来ます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Pythonでset型オブジェクトに要素を追加する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。
Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
Pythonでset型オブジェクトに要素を追加する方法について詳しく説明していくね!
お願いします!
目次
set型とは
set型とは、集合を表すデータ構造です。多くの方は高校数学で以下のような集合をベン図で描いたことがあるかと思います。
このようなデータを保持するのがset型です。setは例えば以下のように定義します。
a = {1,2,3,5,7}
また、上のベン図からもわかるように、setには以下の2つの特徴があります。
順序がない
setには順序がないため、「何番目」という指定がそもそもできません。先ほどのaの中身を表示してみると、お使いの環境によっては毎回異なる順序で中身が表示されるかと思います。
同じ値が重複しない
setは集合であるため、同じ値を重複して持ちません。仮に下のようなsetを定義したとしても、中身を表示すると重複した値は削除されます。
>>>b = {1,2,3,1} >>>print(b) {1,2,3}
set型の使い方
それでは、setを用いるのは一体どんな時なのでしょうか。基本的にはsetは2つ以上組み合わせて用いる場合が多いです。
複数のsetの共通部分を出したり、和集合を出したりといった場面で用いられるケースが良くあります。ここではそうした集合演算の仕方についても簡単にご紹介します。
和集合
和集合を求めるには演算子「|」を用います。以下ではセットaとセットbの和集合をcに格納しています。
c = a | b
共通部分
共通部分を求めるには演算子「&」を用います。以下ではセットaとセットbの共通部分をcに格納しています。
c = a & b
差
和集合を求めるには演算子「-」を用います。以下ではセットaからセットbを取り除いた集合をcに格納しています。
c = a ? b
ちなみに、セットbからセットaを取り除くにはc = b? aとします。
set型オブジェクトに要素を追加する方法
setに要素を追加するには、add()メソッドを用います。コードの書き方は以下のとおりです。
set名.add(値)
非常に簡単ですね。
実際に書いてみよう
それでは実際にsetに要素を追加してみましょう。
>>>s = {"東京", "大阪", "名古屋"} >>>s.add("北海道") >>>print(s) {'大阪', '北海道', '東京', '名古屋'}
ちゃんと北海道が追加されたのが確認できましたね。
まとめ
この記事ではPythonでset型オブジェクトに要素を追加する方法についてご紹介しました。集合を操作するにはsetの基礎の理解が欠かせません。必ず習得するようにしましょう。
監修してくれたメンター
柴山真沙希(しばやままさき)
大手IT企業などでエンジニアとして2年ほど勤務した後、個人事業主としてプログラミングスクール「エンペサール」を経営。子供から大人まで幅広い層を対象にプログラミングを教えている。 得意言語はPython, HTML, CSSで、機械学習やデータ分析、スクレイピングなどが得意。サッカー観戦や読書が趣味である。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。