menu
ホーム > Python > Python 集合(set) -入門編-

Python 集合(set) -入門編-

Pythonリファレンス

Python3

Python も他の言語と同様に、複数の要素を一括して扱う機能があります。リスト(list)、タプル(tuple)、辞書(dict)、集合(set)の4種類です。一般的には配列などとも言います。タプル(tuple) や リスト(list) が任意の整数値をインデックスとした要素を順番に管理するシーケンス型であるのに対して、辞書(dict) の場合、一意のkey(キー) と 値(value)を1つのセットとして各要素を構成します。集合(set)の場合、一意のkey(キー)で各要素を構成します。


Python の集合(set)

集合(set) は、一意の key(キー) のみで構成されます。格納された要素の重複はありません。辞書(dict)のように key(キー) と対になる value(値) は持ちません。Aという集合があり、Bという集合があった場合、AとBの両方の和を和集合、AとBの両方に存在する集合を積集合(交差)と言います。


集合(set)の作成と参照

集合 を作成するには、「{ } (波括弧)」と「set()関数」を使用します。作成した 集合 を参照するには for文を使用します。


「{ } (波括弧)」による集合の作成

文字列を「{ } (波括弧)」で囲み、単一の値で集合を作成してデータ型も確認してみます。

実行結果
{'wepicks'}
<class 'set'>

wepicks という1つの文字列が格納された 集合 です。


整数値で複数の値の集合を作成

複数の値を扱う場合、各値を「,(カンマ)」で区切ります。

実行結果
{2, 3, 5, 7, 11, 13}
<class 'set'>

複数の整数値が格納された集合となります。


for文で値の参照

for文で 集合 の値を参照してみます。

実行結果
2
——
3
——
5
——
7
——
11
——
13
——


文字列で複数の値の集合を作成

文字列では値を「 '(シングルクォート)」で囲みます。

実行結果
{'E', 'D', 'B', 'A', 'C'}
<class 'set'>

※集合 は リスト や タプル のようにシーケンス型ではないので順番による制御はありません。

for文で値の取得

実行結果
E
——
D
——
B
——
A
——
C
——


浮動小数点数で複数の値の集合を作成

今度は、浮動小数点数で集合を作成してみましょう。for文で値を参照して、各値のデータ型も確認してみましょう。

実行結果
{0.105, 1.2, 100.2, 0.012, 11.1}
<class 'set'>
0.105
<class 'float'>
——
1.2
<class 'float'>
——
100.2
<class 'float'>
——
0.012
<class 'float'>
——
11.1
<class 'float'>
——

集合のデータ型は<class 'set'>ですが、各値は、<class 'float'>となっています。


「set() 」による集合の作成

set() 関数で集合を作成できます。

実行結果
{'a', '6', '1', 'c', 'f', 'g', '2', '4', 'd', '5', 'b', '3', 'e'}

set()関数で集合を作成する場合、重複する値は取り除かれ要素は一意になります。

実行結果
{'a', 'c', 'd', 'b', 'e'}

実行結果
{'4', '1', '5', '3', '2'}


リスト や タプル から集合を作成

set() 関数を利用すると リスト や タプル から集合を作成できます。

リスト から集合を作成する

実行結果
{'name', 'mail', 'address', 'tel'}
<class 'set'>

タプルから集合を作成する

実行結果
{'name', 'mail', 'address', 'tel'}
<class 'set'>


空の 集合

空の 集合(set) を作成する場合、set() 関数を使用します。

実行結果
set()
<class 'set'>

{ } で初期化を行うとデータ型が辞書(dict)になります。

実行結果
{}
<class 'dict'>


集合への要素の追加と削除


要素の追加

集合 に要素を追加するには、add() を使用します。

実行結果
{'c', 'a', 'b'}
{'c', 'a', 'b', 'E'}


要素の削除

集合 の要素を削除するには、remove() を使用します。

実行結果
{'c', 'a', 'b'}
{'a'}


集合の値を in でチェック

集合の要素の有無を確認するには in を使用します。

メニューに Maple Pecan Fried Chicken がある場合は、key を取得するサンプルコードです。

実行結果
lunch
dinner

メニューに Maple Pecan Fried Chicken があり、さらに、California Burger は無い、場合に、key を取得するサンプルコードです。

実行結果
lunch


和集合

和集合は、1番目の集合と2番目の集合のどちらか一方にでも含まれている要素の集合です。| 演算子 や union()関数 を使用して和集合を抽出できます。

実行結果
{'a', 'e', 'd', 'c', 'b'}
{'a', 'e', 'd', 'c', 'b'}


積集合

積集合は、1番目の集合と2番目の集合の両方に共通して含まれている要素の集合です。& 演算子 や intersection()関数 を使用して積集合を抽出できます。

実行結果
{'c'}
{'c'}


差集合

差集合は、1番目の集合に含まれていて、2番目の集合には含まれていない要素の集合です。& 演算子 や intersection()関数 を使用して差集合を抽出できます。

実行結果
{'a', 'b'}
{'a', 'b'}


排他的OR

排他的ORは、1番目の集合か2番目の集合のどちらか一方にしか含まれていない要素の集合です。^ 演算子 や symmetric_difference()関数 を使用して排他的ORを抽出できます。

実行結果
{'a', 'e', 'd', 'b'}
{'a', 'e', 'd', 'b'}


タグ(=記事関連ワード)

タグ: , ,

日付

投稿日:2017年9月25日
最終更新日:2017年09月27日

関連記事

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://wepicks.net/pythonref-set/trackback/

page top