• WebCampPro_インタビュー
    未経験31歳からエンジニア転職を実現【実際に聞いてみた】
    2017.04.01
  • WebCamp_インタビュー
    【卒業生インタビュー】台湾で月間100万UUの訪日旅行メディアを手掛けるCEOが、プログラミングを学んで得たものとは?
    2018.01.15
  • WebCamp_インタビュー
    時間や場所にとらわれず自由に働くために必要なスキルとは?【WebCamp卒業生インタビュー】
    2018.01.26
  • WebCamp_インタビュー
    “未経験”でもたった1ヶ月で営業からエンジニアとして転職!『WebCamp』受講者インタビュー
    2017.10.04
  • WebCampPro_インタビュー
    未経験でも寿司職人からWebデザイナーになった!ホスピタリティでスクールを支える宮脇トレーナー
    2017.05.26
  • WebCamp_インタビュー
    「自信の持てるスキルを得たい!」内定辞退した女子大生がプログラミングを学習したワケ。
    2018.04.28
  • WebCampPro_インタビュー
    未経験から上京し、エンジニアとしてチームラボグループに転職!【WebCampPro卒業生インタビュー】
    2018.03.10
  • WebCampPro_インタビュー
    自分で稼ぐ力をつけるため、新卒5年目の営業マンがエンジニアに転職!【WebCampPro転職者インタビュー】
    2018.02.02
  • WebCamp_インタビュー
    【WebCamp受講生インタビュー】起業準備中にCEOが気がついたプログラミングスキルの重要性とは?
    2017.12.25
  • WebCamp_インタビュー
    「1カ月頑張ればこの先が見えてくる」地元メディアを立ち上げたママさん
    2017.07.20
  • WebCamp_インタビュー
    【WebCamp卒業生インタビュー】1ヶ月でRubyをゼロから学び、Webエンジニアとして転職!
    2018.01.15

◆当サイトで人気のプログラミング教室のおすすめランキングはこちら!
プログラミングは独学では非効率で、時間を無駄にするリスクがあります。効率的なカリキュラムで学べるスクールを受講しましょう。

WEBCAMP【マンツーマンサポート】1ヶ月短期集中でプログラミングを学ぶスクール
1ヶ月通い放題・メンター常駐の教室環境でプログラミングを学びたい方!
TechAcademyオンラインで開講しているプログラミングスクール
オンラインでどこでも学べる!/教室に行くのが忙しい人でも安心!
Tech Camp教養としてのITスキルを学べるスクール
Webデザイン/AI(人工知能)/IOS/Androidアプリ制作/VRを学びたい方!
WEBCAMP PRO転職保証付き!エンジニアとして転職したい人におすすめ!
未経験からプロのエンジニアへ3ヶ月で転職する為のスクールです!

11月11日、18日開催決定!2日間で人工知能(AI)を学習するPythonコースが開講

今回、当社(WebCamp)では、現役フリーランス・エンジニアとしてPythonの最前線で活動している講師をお招きし、2日間でPythonの基本から機械学習の基礎まで学ぶ短期集中型のコースを開講します。
Pythonの基礎プログラミング能力を身につけたい方機械学習やAIに興味はあるが学習できていない方現役Pythonエンジニアからリアルな話を聞きたい方
上記にあてはまる方は、ぜひご参加ください!

listtupleなど、pythonの配列を学んでいく中でも、登場することのあるsetは皆さんご存知ですか?

setは配列の重複データを削除する際の記述方法などで用いられることがありますが、何となくわかっているけど他の人に説明することが出来ない方は少なくありません。

今回はpythonのsetについて、詳しく解説していきます。

配列とsetについて

配列と合わせて覚えることの多いsetですが、listなどの配列とsetは似ている所もありますが、実はまったくの別物です。

まずはsetの基本から解説していきます。

setの基本について

setは複数の要素を格納することが出来ます。

またsetの特徴として同じ要素は持つことができません。

基本的にはlistに似ており、利用する頻度も非常に多いです。

setを使用するメリット

setを使用するメリットは、重複する要素がないことから、重複する要素を格納しても自動的に1つに集約される為、重複する要素を必要としない場合や重複する要素を削除する場合に利用されます。

また記述方法が簡易なことから、listと同様に利用頻度が非常に高いです。

setを使用するデメリット

setを使用する場合のデメリットは、要素番号を持っていない為、listやtupleのように順序となる要素番号を持っていません。

その為、特定の要素のみを取り出すことが出来ないことがデメリットになります。

setの使い方について

それでは、具体的なsetの使い方について、解説していきます。

setとlistの違いとは

setとlistの違いを整理しますと、以下の2点にまとめられます。

setと比較されることの多いlistですが、大きな違いは順番となる要素番号を持たないことです。

更にlistの場合は、要素を重複することも出来ますが、setの場合を重複する要素は1つに集約されます。

setを使う為の記述方法について

setの基本的を使う時の記述方法は、下記になります。


set(要素)

配列などの複数の要素を持つものをset()で囲みます。

setの使用例について

set宣言の具体的な使用例は、下記になります。


#list配列をset型のデータとして代入

tmp = set([1,2,3,4,5,5])

#printで出力結果を確認

print(tmp)

#実行結果

{1, 2, 3, 4, 5}

実行結果からもわかる様に、setの特徴である重複データの5が集約されて1つしか出力されていない所がポイントです。

setを利用した文字列を格納する方法について

setに文字列を格納する場合について、解説していきます。

setで文字列を分解して格納する記述方法

setに文字列を格納すると自動的に、一文字ずつ分解して格納されます。

記述方法は、下記になります。


set(文字列)

文字列は分解して格納されます。

setは順番を持たない為、出力した時は格納した順番とは限らないので注意が必要です。

setで文字列を分解して格納する使用例

あまり利用する機会はありませんが、文字列を格納して出力することで、setの特性が理解して貰いやすいので使用例を記述します。


#重複がない文字列を格納

set_sample1 = set("milk")

#重複がある文字列を格納

set_sample2 = set("apple")

#printで出力結果を確認

print(set_sample1)

print(set_sample2)

#実行結果

{'m', 'l', 'k', 'i'}
{'e', 'p', 'a', 'l'}

実行結果から文字列をsetで格納した場合、一文字ずつに分解されて、順番を持たないことから出力した際に、格納時とは違う出力結果になっています。

またappleのように重複する文字がある場合は、1つに集約されており、これも上述で触れたsetの特性になります。

setの要素を追加について

setに要素を追加する手順について、解説していきます。

配列とは記述方法が大きく異なる為、注意が必要です。

setに要素を追加する記述方法

setに要素を追加する場合は、.add()を使います。

.addの記述方法は、下記になります。


.add(追加する要素)

setに要素を追加する使用例

それでは具体的にsetに要素を追加する使用例は、下記になります。


#set型のオブジェクト作成

set_sample = set([1,2,3,4,5])

#set_sampleの要素に6を追加

set_sample.add(6)

#printで出力結果を確認

print(set_sample)

#実行結果

{1, 2, 3, 4, 5, 6}

実行結果から値が要素が追加されていることが、確認することが出来ます。

setに複数の要素を追加記述方法

.addでは要素を1つずつしか追加できません。

複数の要素を追加する場合の記述方法は、下記になります。


.update(追加する要素)

setに複数の要素を追加する使用例

複数の要素を追加する場合の使用例は、下記になります。


#set型のオブジェクト作成

set_sample = set([1,2,3,4,5])

#追加する要素

set_sample2 = set([6,7,8,9])

#複数要素の追加

set_sample.update(set_sample2)

#printで出力結果を確認

print(set_sample)

#実行結果

{1, 2, 3, 4, 5, 6, 7, 8, 9}

実行結果から要素を纏めて追加されていることが、確認できます。

setの要素削除について

setを使用することで、重複されたデータは自動的に削除されます。

それとは別に現在の重複されていない要素を削除する場合の手順について、解説をしていきます。

setの要素を削除する記述方法

setの要素を削除する場合は、.removeを使用します。

基本的な記述方法は、下記になります。


.remove(削除する要素)

setの要素を削除する使用例

記述方法だけでは、具体的なイメージが沸きにくい為、setの要素を削除する使用例は、下記になります。


#setのオブジェクト作成

set_sample = set([1,2,3,4,5])

#set_sampleから3の要素を削除

set_sample.remove(3)

#printで出力結果を確認

print(set_sample)

#実行結果

{1, 2, 4, 5, }

実行結果から3の要素が削除されていることが、確認できます。

setの要素を全て削除する記述方法

setの要素を全て削除する記述方法は、下記になります。


.clear()

setの要素を全て削除する使用例

実際にsetの要素を全て削除する.clear()の使用例は、下記になります。


#setのオブジェクト作成

set_sample = set([1,2,3,4,5])

#setの要素を全て削除

set_sample.clear()

#printで出力結果を確認

print(set_sample)

#実行結果

set()

実行結果のset()は、要素が全て削除されて空になっていることを表しています。

setの要素数を調べる方法について

配列でも同じことが言えますが、複数の要素を格納できるsetにいくつの要素が入っているかを確認する機会は少なくありません。

要素数を調べる方法について、解説していきます。

setの要素数を調べる記述方法

setの要素数を調べる記述方法を行う場合は、len()を使用します。

基本的な記述方法は、下記になります。


len(要素数を調べる対象)

setの要素数を調べる使用例

setの要素数を調べる具体的な、使用例は下記になります。


#要素数を調べる為のset型のデータを準備

set_sample = set([1,2,3,4,5])

#len()を使用して要素数を格納

set_len = len(set_sample)

#printで出力結果を確認

print(set_len)

#実行結果

5

実行結果から要素数が戻り値として5が格納されていることがわかります。

既にlistなどの配列を学習した方はご存知かもしれまんせんが、配列の場合もlen()を使って要素数を取得することが可能です。

set内の要素検索について

set内に特定の要素が含まれているかを確認する機会があります。

要素を検索する方法について、解説していきます。

set内の要素を検索する記述方法

set内の要素を検索する場合は、配列でも使用するinを使用します。

基本的な記述方法は、下記になります。


検索する要素 in 検索対象のset

戻り値は検索する要素が含まれていた場合、Trueになります。

逆に検索する要素が含まれていない場合は、Falseが戻り値になります。

set内の要素を検索する使用例

inを使用してset内の要素を検索する使用例は、下記になります。


#検索される対象のsetを作成

set_sample = set([1,2,3,4,5])

#検索対象から特定の要素を検索

result1 = 5 in set_sample

result2 = 7 in set_sample

#printで出力結果を確認

print(result1)

print(result2)

#実行結果

True
False

記述方法でも解説している様に、result1では検索要素がsetに含まれていた為、Trueが出力されています。

それに対して、result2は検索要素がsetに含まれていない為、Falseが出力されえいます。

まとめ

今回は集合型のデータを扱うことが出来るsetについて、解説をしてきましたが、いかがでしたか。

setは複数のデータを格納することが出来るだけでなく、その特性から重複した要素を配列から削除するなどの利用方法があります
ぜひ、積極的に学習し、使いこなしていきましょう。

WebCamp・WebCamp Proについて

WebCampは1ヶ月でプログラミング・Webデザインスキルを学ぶ通い放題のプログラミングスクールです。WebCamp Proは3ヶ月間で未経験から即戦力エンジニアを育成するプログラミングスクールです。

2つのサービスを運営するインフラトップでは、「学びと仕事を通して人生を最高の物語にする」という理念で会社を経営しています。

キャリアアップを目指す方は、この機会に私達と一緒にプログラミングを学んでみませんか?

11月11日、18日開催決定!2日間で人工知能(AI)を学習するPythonコースが開講

今回、当社(WebCamp)では、現役フリーランス・エンジニアとしてPythonの最前線で活動している講師をお招きし、2日間でPythonの基本から機械学習の基礎まで学ぶ短期集中型のコースを開講します。
Pythonの基礎プログラミング能力を身につけたい方機械学習やAIに興味はあるが学習できていない方現役Pythonエンジニアからリアルな話を聞きたい方
上記にあてはまる方は、ぜひご参加ください!

12月枠も残りわずか当社人気の転職保証コース
プログラミング学習から転職成功まで導く、当社人気のWebCamp Proコース。
11月受入枠は満員となっております。12月枠に向け、お早めの申込みをオススメします。
プログラミング未経験でもエンジニア転職を絶対成功させたい
スキルを身に着けて人生を自ら切り開きたい
上記にあてはまる方は、ぜひご検討ください!

▼未経験から1ヶ月でWebデザイン・プログラミングを学びたい方はこちら!

▼ついに開講!オンラインでWebデザインを学びたい方はこちら!

関連キーワード
pythonの関連記事
  • 【python入門者必見!】print関数の基礎から徹底解説
  • 【python超入門】WebサイトでPython学習のすすめ
  • 【python入門者向け】おすすめPDF教材3選
  • 【python入門者向け】おすすめの学習方法
  • 【Python入門】MacでPythonをはじめるまで
  • 【python入門者必見!】1からわかるrange関数の徹底解説
おすすめの記事