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

プログラミング

Python基礎編:setの記述方法と変換

saori
Python基礎編:setの記述方法と変換

これまでのPythonの記事では、リストやタプル、ディクショナリの記述方法を説明してきました。

今回はこれらと似たような「set」と呼ばれるものを説明したいと思います。リストやタプル、ディクショナリと比べても簡単です。

setとは

setとは、集合を表すデータ型です。リストやタプルと同じように複数の要素を持つことができますが、リストやタプルと違うところが下記の2つあります。

  • 要素が重複しないように管理される
  • setの要素には順番がない

setを実際に作ってみながら、リストやタプルと違うところを確かめていきましょう。

setの書き方

setは「 {}(波かっこ)」を使います。

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

coin = {"表","裏"}

country = {"Japan","America","Korea","Chinese","japan"}

中の要素は、文字列でも数値でも大丈夫です。

また、set()を使うことで、簡単にsetの成型ができたり、リストやタプル、ディクショナリからsetを作ったりすることもできます。

set()を使ったsetの生成

先ほど紹介した、「変数名 = {要素,要素,…}」の作り方ではないsetの作り方は以下の通りです。

変数名 = set([要素,要素名…])

以下が出力結果です。

簡単にsetを作ることができましたね。

リスト、タプル、ディクショナリをsetに変換

リスト、タプル、ディクショナリをsetに変換することが出来ます。変換方法は、

新しい変数 = set(リスト・タプル・ディクショナリ名)

と記述します。

まず初めに、リスト・タプル・ディクショナリを定義しています。5行目からsetに変換するコードを書いています。

以下が出力結果です。

print()で新しく作った変数を呼び出してみると「{}(波かっこ)」がついたsetに変換されていることが分かります。

そして、リストやタプルはそのままsetになっていますが、ディクショナリをsetに変換した場合はどうなっているでしょうか。「key」のみの出力となっていることが分かると思います。

setを作る時、ディクショナリを変換するときだけは「リストやタプルと違う」ということを覚えておいてください。

要素が重複しないように管理される

冒頭でもあげたリストとの違いの1つに「要素が重複しないように管理される」というのがあります。例えばリストでは、以下のように、同じ内容の要素があっても問題なく使用できます。

number_list = [1,2,1,5,6,2]

しかし、setの場合は、重複した値は取り除かれます。試しに、このリストを「set()」を使ってsetに変換してみます。

以下が出力結果です。

重複していた「1」と「2」は1つずつしか出力されていません。これが、重複しないように管理されるということです。setの中の要素名は必ず1つずつしかないということですね。

なぜこのように管理されているかというと、重複する要素名があると「集合」と呼ばれる演算子をしたときに要素を取り出すことができなくなってしまうからです。

setの要素には順番がない

リストとの違いの2つ目に「setの要素には順番がない」ということがあります。リストはインデックスと呼ばれる番号で順番通りに管理されていましたが、setの要素には順番がありません。出力するときも、自分が入力した順番では出力されないこともあります。

例えば以下のリストをsetに変換して出力してみましょう。また、インデックス番号を指定して要素が取り出せるかも試してみます。

number_list = [1,2,5,3,10,7]

以下が出力結果です。

setの要素が、自分で入力した順番にならずに、数字順になっています。そしてインデックスで取り出そうとすると、エラーが出ています。

「TypeError: ‘set’ object does not support indexing」これは、「setオブジェクトはindexによる要素のアクセスはできません」という意味です。

これで、setには順番がないことがわかりました。

まとめ

今回説明したsetをつかうと、プログラミングがとても便利になるので様々な作り方を覚えてください。

次回は、setの追加・削除について説明します。

あなたにオススメの記事

納涼夏祭りin高速道路の高架下

納涼夏祭りin高速道路の高架下

Python基礎編:タプルの書き方と出力、リストとの違い

Python基礎編:タプルの書き方と出力、リストとの違い

iPadはレンタルしてお得に使おう

iPadはレンタルしてお得に使おう

元小学校教師がプログラミングを独学でも始めたきっかけ

元小学校教師がプログラミングを独学でも始めたきっかけ

スカイツリー、エイサー、よさこいが楽しめる隅田川踊り納涼大会

スカイツリー、エイサー、よさこいが楽しめる隅田川おどり納涼大会

インスタ映えにMacBookをレンタル

Python基礎編:関数の書き方

Python基礎編:関数の書き方

板橋区で沖縄を感じたアシバ祭

板橋区で沖縄を感じたアシバ祭

帝国ホテル東京アーケード(地下1階)をブラブラしてきました

帝国ホテル東京アーケード(地下1階)をブラブラしてきました

Python基礎 タプルの追加と削除

Python基礎編:タプルの追加と削除

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

見次公園フェスティバルのイベントが凄い

見次公園フェスティバル「早稲田大学ちんどん研究会」「中国雑技団」

「小さな自然の写し方」という本を読んで撮影した写真を紹介します

「小さな自然の写し方」という本を読んで撮影した写真を紹介します

事務所栽培で初収穫したキュウリとナスを料理してみた

事務所栽培で初収穫したキュウリとナスを料理してみた

10月1日はデザインの日

10月1日はデザインの日

SPONSOR

  • 最近チェックしたアイテム