とぎぷろべい

包丁研ぎとプログラミングと米国株投資についてのなんやかんや

集合型について(Python)

f:id:feci:20210726231508j:plain

Python3

 

Python3.8.5での集合型について。

s = {122344456}  #集合の作り方
s1 = {23367}

print(s)        #{1, 2, 3, 4, 5, 6} ← 集合では重複した値は消える
print(type(s))  #<class 'set'> ← 集合のデータ型はsetで表される

print(s - s1)   #{1, 4, 5} ← s1にないsの値が残る
print(s1 - s)   #{7} ← sにないs1の値が残る
print(s & s1)   #{2, 3, 6} ← sとs1の両方にある値だけが残る
print(s | s1)   #{1, 2, 3, 4, 5, 6, 7} ← sとs1にあるすべての値が残る
print(s ^ s1)   #{1, 4, 5, 7} ← sかs1のどちらかにある重複していない値

集合型はイテレータの一種です。

type関数を使って集合のデータ型を調べると、はPythonではsetという文字列が表示されます(set型)。

 

set型を作るには、dict型のときと同じようにカンマで区切った各値をブレイス(波括弧)で囲います。

各値にkeyを指定してkeyとvalueをコロンで区切るとdict型になってしまいますが、単純に各valueをカンマで区切るとset型になります。

 

set型では重複した値は勝手に消去されます。

これはint型であってもstr型であっても同じです。

同じset型変数内に存在する重複した値は、1つだけを残して残りは自動でその変数内から削除されます。

 

 

集合型のメソッドについて。

s = {12345}  #集合の作り方

print(s[1])       #TypeError ← 集合にはindexが存在しない

s.add(0)          #sに0を追加
print(s)          #{0, 1, 2, 3, 4, 5} ← 適当な位置に0が追加される

s.remove(0)       #sから0を削除
print(s)          #{0, 1, 2, 3, 4, 5} ← 0が削除される

s.clear()         #sの値を全削除する
print(s)          #set() ← sは空になっている

print(help(set))  #setクラスの情報がターミナルに出力される

set型にもいろいろと使えるメソッドがあります。

 

addメソッドは、パラメータの値を左辺に指定したset型変数に追加で代入します。

removeメソッドは、パラメータの値を左辺に指定したset型変数から削除します。

 

clearメソッドは、左辺に指定したset型変数の中身をすべて削除します。

clearメソッドでは変数というオブジェクトそのものは消えません。

もし変数そのものを削除したい場合はdel文を使います。

 

 

以上です。