LoginSignup
2
5

More than 5 years have passed since last update.

python入門(6)~集合~

Last updated at Posted at 2019-02-16

集合

集合とは重複しない要素をグループに分けて扱う型のことです.

他の型からの変換

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が返されます.

最後に

少しずつ学んでいきましょう.

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5