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