集合
集合とは重複しない要素をグループに分けて扱う型のことです.
他の型からの変換
set()を使うことによって他の型から集合を作ることができます.
set1.py
a = set('JAPAN')
list = [3, 6, 23, 8]#リスト
b = set(list)
print(a)
print(b)
実行結果
{'A', 'P', 'N', 'J'}
{8, 3, 6, 23}
要素数の取得
len()を使うことによって要素数を取得することができます.
set2.py
a = {'A', 'B', 'C', 'D', 'E'}
length = len(a)
print(length)
実行結果
5
値の有無の判別
値の有無の判別にはinを使います.
set3.py
a = {'c', 'java', 'python'}
chk1 = 'python' in a
chk2 = 'swift' in a
print(chk1, chk2)
実行結果
True False
集合演算
演算子 | メソッド | |
---|---|---|
和集合 | | | union() |
差集合 | - | difference() |
積集合 | & | intersrction() |
排他的論理和 | ^ | symmetric_difference() |
部分集合 | <= | issubset() |
部分集合 | < | |
上位集合 | >= | issuperset() |
上位集合 | > | |
互いに素 | isdisjoint() | |
等しい | == |
ope.py
ob = {'java', 'php', 'python', 'c#', 'c++'}
c = {'c', 'c#', 'c++'}
script = {'javaScript', 'ruby', 'php', 'python'}
#和集合
sum = ob | c #sum = ob.union(c)
print(sum)
#差集合
sub = ob - c #sub = ob.difference(c)
print(sub)
#積集合
pro = ob & script #pro =ob.intersection(script)
print(pro)
#排他的論理和
xor = ob ^ c #xor = ob.symmetric_difference(c)
print(xor)
#部分集合
part = c <= ob #part = c.issubset(ob)
print(part)
#互いに素
a = c.isdisjoint(script)
print(a)
実行結果
{'python', 'c', 'php', 'c++', 'java', 'c#'}
{'python', 'java', 'php'}
{'python', 'php'}
{'python', 'java', 'php', 'c'}
False
True
実行結果のように論理和や論理積などは集合の値が出力されますが,部分集合などではTrueかFalseが返されます.
最後に
少しずつ学んでいきましょう.