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


セットの比較・作成・更新

Pythonセットは、セット同士の比較や反復可能オブジェクトとの比較をさまざまな条件で行うことができます。またその結果をもって新たなセットを作成したり、既存のセットを更新することも可能で、一部の関数は演算子を用いても同じ結果を得ることができます。

「isdisjoint」はセットと引数の反復可能オブジェクトとの間で共通の要素を持たないときにTrueとなります。「issubset」はセットの全要素が引数の反復可能オブジェクトに含まれているときにTrueとなります。「issuperset」は引数の反復可能オブジェクトの全要素がセットに含まれているときにTrueとなります。

# -*- coding:utf-8 -*-


test_set_1 = set({'python', '-', 'izm', '.', 'com'})

print test_set_1.isdisjoint({'python', 'izm'})
print test_set_1.isdisjoint({1, 2, 3})

print '----------------------------'

print test_set_1.issubset({'python', 'izm'})
print test_set_1.issubset({'www', 'python', '-', 'izm', '.', 'com'})

print '----------------------------'

print test_set_1.issuperset({'python', 'izm'})
print test_set_1.issuperset({'www', 'python', '-', 'izm', '.', 'com'})

--実行結果--

False
True
----------------------------
False
True
----------------------------
True
False


「issubset」と「issuperset」は演算子を用いることでも同様の結果を得ることができます。

# -*- coding:utf-8 -*-


test_set_1 = set({'python', '-', 'izm', '.', 'com'})

# issubsetと同じ
print test_set_1 <= {'python', 'izm'}
print test_set_1 <= {'www', 'python', '-', 'izm', '.', 'com'}

print '----------------------------'

# issupersetと同じ
print test_set_1 >= {'python', 'izm'}
print test_set_1 >= {'www', 'python', '-', 'izm', '.', 'com'}

--実行結果--

False
True
----------------------------
True
False



これらのメソッドは新しいセットを作成します。

# -*- coding:utf-8 -*-


test_set_1 = set({'python', 'izm', 'com'})

print test_set_1.union({'python', 'www'})
print test_set_1.intersection({'python', 'www'})
print test_set_1.difference({'python', 'www'})
print test_set_1.symmetric_difference({'python', 'www'})

--実行結果--

set(['python', 'www', 'com', 'izm'])
set(['python'])
set(['com', 'izm'])
set(['www', 'com', 'izm'])

「union」はセットと引数の反復可能オブジェクトのすべての要素を持つセットを作成します。「intersection」はセットと引数の反復可能オブジェクトとの間における共通の要素を新たなセットとして作成します。「difference」はセットに含まれていて引数の反復可能オブジェクトには含まれない要素を持つ新たなセットを作成します。「symmetric_difference」はセットと引数の反復可能オブジェクトのどちらかだけに含まれる要素を持つ新たなセットを作成します。


また演算子を用いることでも同様の結果を得ることができます。

# -*- coding:utf-8 -*-


test_set_1 = set({'python', 'izm', 'com'})

print test_set_1 | {'python', 'www'}
print test_set_1 & {'python', 'www'}
print test_set_1 - {'python', 'www'}
print test_set_1 ^ {'python', 'www'}

--実行結果--

set(['python', 'www', 'com', 'izm'])
set(['python'])
set(['com', 'izm'])
set(['www', 'com', 'izm'])



これらのメソッドは既存のセットを更新します。

# -*- coding:utf-8 -*-


test_set_1 = set({'python', 'izm', 'com'})
test_set_1.intersection_update({'python', 'www'})
print test_set_1

test_set_1 = set({'python', 'izm', 'com'})
test_set_1.difference_update({'python', 'www'})
print test_set_1

test_set_1 = set({'python', 'izm', 'com'})
test_set_1.symmetric_difference_update({'python', 'www'})
print test_set_1

--実行結果--

set(['python'])
set(['com', 'izm'])
set(['www', 'com', 'izm'])

「intersection_update」はセットと引数の反復可能オブジェクトとの間における共通の要素を持つセットへ更新します。「difference_update」は引数の反復可能オブジェクトに含まれる要素を除外したセットへ更新します。「symmetric_difference_update」はセットと引数の反復可能オブジェクトのどちらかだけに含まれる要素を持つセットへ更新します。


また演算子を用いることでも同様の結果を得ることができます。

# -*- coding:utf-8 -*-


test_set_1 = set({'python', 'izm', 'com'})
test_set_1 &= {'python', 'www'}
print test_set_1

test_set_1 = set({'python', 'izm', 'com'})
test_set_1 -= {'python', 'www'}
print test_set_1

test_set_1 = set({'python', 'izm', 'com'})
test_set_1 ^= {'python', 'www'}
print test_set_1

--実行結果--

set(['python'])
set(['com', 'izm'])
set(['www', 'com', 'izm'])




Python
スタートブック


入門 Python 3


Effective
Python


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

 
 
 

これが自然にできればPython中級者の仲間入り!?

▶応用編:内包表記



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




P  R