Python3.8.5での集合型について。
s = {1, 2, 2, 3, 4, 4, 4, 5, 6} #集合の作り方
s1 = {2, 3, 3, 6, 7}
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のどちらかにある重複していない値
s1 = {2, 3, 3, 6, 7}
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 = {1, 2, 3, 4, 5} #集合の作り方
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クラスの情報がターミナルに出力される
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文を使います。
以上です。