Re:ゼロから始める文系プログラマ

文系プログラマーがブログを書いてみた。

【Python・データ構造】 ~セット~

f:id:ShotaNukumizu_1000:20210405111435p:plain

おはようございます!Shotaです。今日もPythonに関する記事を書いていきます!

今日は「セット」というデータについて詳細に説明していきます。

 

【目次】

 

セットとは

 リストなどのシーケンスな値は、用意された値にインデックスを割り振って順番に整理します。これらは、「〇〇番の値」と番号をプログラム上で指定すれば特定の値を取り出せます。番号を指定して値を入れれば、同じ値をいくつでも用意できます。リストは順番を重視し、中身のデータはまったく気にしません。

それとは反対に、「すべての値がユニークである」ということを前提にデータの集まり、値を管理したいこともあります。これを実現するデータが「セット(set)」です。セットの中には、同じ値を複数保管することができません。また、値にはインデックスがつけられず、順序付けて管理されていません。

セットは{}で作成します。この他、「set()」と書いて作ることもできます。その際には、他のシーケンスの値(リスト、タプル、レンジ)を挿入できます。

 

セットの値の利用

セットは値をインデックスで管理していません。ただ、値をそのまま保管しているだけです。したがって、番号を指定してセットの中から必要な値を取り出す使い方はできません。

ここで、以下のコードを参照にセットを利用するために必要な機能についておさえておきましょう。

 

f:id:ShotaNukumizu_1000:20210416203514p:plain

 

▼実行結果

f:id:ShotaNukumizu_1000:20210416203613p:plain

 

セットの内容に関する演算はリストやタプルとまったく同じです。(シーケンス全体に言えること)セットはリストと同じミュータブル(変更可能)なデータですが、リストに値を追加する時のメソッドが異なることには十分に注意して下さい。(リストはappendメソッド、セットはaddメソッドを利用します)

 

セットの演算

セットにはセット同士で比較するための演算ができます。セットは高校数学の「集合」に相当するデータ型です。集合を理解していると、これら演算の理解もしやすいです。

 

セットの比較演算 

セットには2つのセットを比較するための演算が用意されています。これは、比較演算子を使って行うことができます。セットで使える比較演算子は次のとおりです。

 

f:id:ShotaNukumizu_1000:20210416204836p:plain

 

セットの論理演算

まずは次のようなコードを書いてみましょう。セットで使われている論理演算は次の4種類存在します。

 

f:id:ShotaNukumizu_1000:20210416205658p:plain

 

▼実行結果

f:id:ShotaNukumizu_1000:20210416205721p:plain

 

コマンドプロンプトに表示されている通り、論理演算の結果として表示されているセットには値が順序よく整理されていないことが見て取れるでしょう。

まとめ

【本日のまとめ】

  • セットは集合を扱うシーケンスである。同じ値を複数持つことはできない。
  • セットを作るときには、{}またはset()を使う
  • セットはリストやタプルと同じようにシーケンスである。基本的な使い方は同じ
  • セットはリストと同じようにミュータブル(変更可能)であるが、値を追加する時のメソッドが異なることにはくれぐれもご用心
  • セットは比較演算子を使える。あと、2つのセットを合成して新しいセットを作成できる。その際には論理演算子を使う

 

本ブログでは、こんな感じでPythonにまつわる情報や基本的な知識、Pythonの操作方法やニュースをたくさん紹介していきます。毎週日曜日に、普段とは趣向を変えて有名な自己啓発本・ビジネス書を要約・考察するブログを書いていきます。

この記事がいいと思った人はSNSにシェアしてくれると非常に嬉しいです!

明日は日曜日なので、有名書籍の解説をしていきます。第3回では、『Think smart』について解説していきたいと思います。

今日も最後まで読んでくださりありがとうございました!

 

 

【参考図書】

gihyo.jp