Python入門から応用までの学習サイト


セット

ディクショナリの次はセットです。集合とも呼ばれます。リストと同じように要素を追加、削除することができますが、重複した要素を持つことができないのが特徴です。また本項では更新することができない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
スタートブック


入門 Python 3


Effective
Python


退屈なことは
Pythonにやらせよう

 
 
 

Pythonではあたりまえ!スライスを極める!

▶基礎編:スライス



確かな力が身につく
Python「超」入門




P  R