ディクショナリの次はセットです。集合とも呼ばれます。リストと同じように要素を追加、削除することができますが、重複した要素を持つことができないのが特徴です。また本項では更新することができないsetであるfrozensetも取り扱います。
※セットのもう少し踏み込んだ使い方はセットの比較・作成・更新で触れています。
セットの基本
セットはディクショナリと同じように「 {} 」(中カッコ)を使用します。
test_set_1 = {'python', '-', 'izm', '.', 'com'} print(test_set_1) print('--------------------------------') for i in test_set_1: print(i)
{'izm', '.', '-', 'python', 'com'} -------------------------------- python - com izm .
要素がない空のセットを作成する時はsetを用います。
# これはディクショナリ test_dict = {} # これはセット test_set = {'python'} # 空のセットは「set」を使う empty_set = set()
前述の通り、重複した値を持つことはできません。たとえば次の例では‘python’と‘izm’が重複していますが、そのセットの出力結果には1つだけしか存在していません。
test_set_1 = {'python', '-', 'izm', '.', 'com', 'python', 'izm'} print(test_set_1) print('--------------------------------') for i in test_set_1: print(i)
{'izm', '.', '-', 'python', 'com'} -------------------------------- python - com izm .
要素の追加
単一の要素を追加する場合はadd、他のセットやリスト、タプルなどから要素を追加する場合はupdateを使用します。
test_set_1 = set() test_set_1.add('python') test_set_1.update({'-', 'izm', '.', 'com'}) print(test_set_1)
{'izm', '.', '-', 'python', 'com'}
要素の削除
セットから要素を削除する場合はremove、discardを使用します。removeは指定した要素が存在していない場合はエラーとなります。
test_set_1 = {'python', '-', 'izm', '.', 'com'} test_set_1.remove('-') test_set_1.discard('.') print(test_set_1)
{'izm', 'python', 'com'}
frozenset
frozensetはfrozenset関数を使用して通常のsetのように作成できます。ただし次の例にあるようなremoveやdiscard、さらにaddやupdateなどを行おうとするとAttributeErrorが発生します。
test_set_1 = frozenset({'python', '-', 'izm', '.', 'com'}) # test_set_1.remove('-') # test_set_1.discard('.') print(test_set_1)
frozenset({'izm', '.', '-', 'python', 'com'})