Set型でできること
集合同士の演算
返りも集合型
- 集合の和をとる
union()
,|
1 - 集合の積を取る
intersection()
,&
- 集合の差を取る
difference()
,-
2 - 集合対称差(片側だけに固有)を取る 'symmetric_difference()
,
^`
返りがBool
- 互いに素、共通要素がないか
isdisjoint()
- 含まれるか
issubset()
,>=
その他の型変換における注意
Listに変更されるときはランダムな順番のリストになる。なぜならば、Set型ではハッシュテーブルとして実装されており、ハッシュテーブルの順番に挿入しList型に変換するからである。
参考: https://docs.python.org/ja/3/tutorial/datastructures.html
参考2: https://docs.python.org/ja/3/library/stdtypes.html#set
参考3: https://note.nkmk.me/python-set/
rangeの引数
rangeは1から3の引数を取ることができる関数である。
range(初期値,最終値,差分)
となる。高校で習った等差数列をイメージすると良いだろう。
この引数の取り方の順番は要素のIndexという違いがあるが配列に対するスライスにも似ている。
リスト内包表記ができる型
- List
- Dict
- Set
である。
List
# 書き方 1
squares = []
for i in range(10):
squares.append(x**2)
# 書き方2
squares = list(map(lambda x:x**2,range(10)))
del x
# 書き方3
squares = [x**2 for x in range(10)]
Dict
dict = {k: False for k in range(10)}
Set
set = {k for k in range(10)}