7.5データ構造の集合
7.5集合 7.5.1フォーマットの作成: 7.5.2常用機能 7.5.3集合の一般的な方法
集合(set)は、1つまたは複数の形態の異なる大きさの全体からなり、集合を構成する物事またはオブジェクトを要素またはメンバーと呼ぶ.
基本的な機能は、メンバー関係のテストと重複要素の削除です.
カッコ{}またはset()関数を使用してコレクションを作成できます.空のコレクションを作成するには、{}ではなくset()を使用する必要があります.なぜなら、{}は空の辞書を作成するために使用されるためです.
7.5.1フォーマットの作成:
parame={value 1,value 2,...}またはset(value)
7.5.2常用機能
7.5.3集合の常用方法
集合はsetクラスで表され、dir(set)を使用して、クラスに含まれるメソッドを表示できます.[‘add’, ‘clear’, ‘copy’, ‘difference’, ‘difference_update’, ‘discard’, ‘intersection’, ‘intersection_update’, ‘isdisjoint’, ‘issubset’, ‘issuperset’, ‘pop’, ‘remove’, ‘symmetric_difference’, ‘symmetric_difference_update’, ‘union’, ‘update’]
集合(set)は、1つまたは複数の形態の異なる大きさの全体からなり、集合を構成する物事またはオブジェクトを要素またはメンバーと呼ぶ.
基本的な機能は、メンバー関係のテストと重複要素の削除です.
カッコ{}またはset()関数を使用してコレクションを作成できます.空のコレクションを作成するには、{}ではなくset()を使用する必要があります.なぜなら、{}は空の辞書を作成するために使用されるためです.
7.5.1フォーマットの作成:
parame={value 1,value 2,...}またはset(value)
7.5.2常用機能
# set
empty_set = set()
print(empty_set)
set1 = {
'a', 'b', 'c', 'b', 'a'}
print(set1)
# :{'b', 'c', 'e', 'd', 'a'} ,
#
if 'a' in set1:
print('a in set1')
else:
print('a is not in set1')
# :a in set1
#
set2 = set('abcdefg')
set3 = set("qwertyuasd")
print(set2)
# :{'b', 'g', 'c', 'e', 'f', 'd', 'a'}
# set2 set3
print(set2 - set3)
# :{'f', 'b', 'g', 'c'}
# set2 set3
print(set2 | set3)
# :{'b', 'w', 'g', 'q', 'e', 'f', 'd', 'u', 'y', 'r', 't', 'c', 'a', 's'}
# set2 set3
print(set2 & set3)
# :{'e', 'd', 'a'}
# set2 set3
print(set2 ^ set3)
# :{'r', 'b', 't', 'g', 'q', 'c', 'f', 'w', 'u', 's', 'y'}
7.5.3集合の常用方法
集合はsetクラスで表され、dir(set)を使用して、クラスに含まれるメソッドを表示できます.[‘add’, ‘clear’, ‘copy’, ‘difference’, ‘difference_update’, ‘discard’, ‘intersection’, ‘intersection_update’, ‘isdisjoint’, ‘issubset’, ‘issuperset’, ‘pop’, ‘remove’, ‘symmetric_difference’, ‘symmetric_difference_update’, ‘union’, ‘update’]
#
set3.add('e')
print(' add:', set3)
# :{'e', 'c', 'a', 'b'}
#
set3.update('1', '2', '3')
print(' update:', set3)
# :{'c', '3', 'a', '1', '2', 'b', 'e'}
# , ,
set3.remove('e')
print(' remove:', set3)
# : remove: {'c', '3', '1', 'b', '2', 'a'}
# , ,
set3.discard('1')
print(' discard:', set3)
# : discard: {'c', '3', 'b', '2', 'a'}
#
print(' pop', set3.pop())
# : pop b
print(set3)
# :{'3', '2', 'c', 'a'}
#
# intersection() ; print() , ;
# intersection_update() , 。 print() ; ;
print(' ', set2.intersection(set4))
# :{'c', 'd'}
print(set4.intersection(set2))
# :{'c', 'd'}
print(set2, set4)
# :{'c', 'a', 'b', 'd'} {'c', 'd', 'e', 'f', 'g'}
#
set2.intersection_update(set4)
print(set2)
# :{'c', 'd'}
set2 = set(set1)
set5 = set4.copy()
# set5 = set4 copy
set5.intersection_update(set2)
print(set5)
# :{'c', 'd'}
print("set4", set4)
# :set4 {'f', 'c', 'd', 'e', 'g'}
# :difference difference_update
# difference() ; print() , ;
# difference_update() , 。 print() ; ;
print(set2, set4)
# :{'a', 'b', 'd', 'c'} {'d', 'e', 'c', 'g', 'f'}
print(set2.difference(set4))
# :{'b', 'a'}
print(set4.difference(set2))
# :{'f', 'g', 'e'}
#
print('difference_update', set2, set4)
# :{'c', 'z', 'b', 'a', 'd'} {'c', 'g', 'f', 'e', 'd'}
set2.difference_update(set4)
print(set2)
# :{'a', 'b'}
set2 = set(set1)
set6 = set4.copy()
set6.difference_update(set2)
print(set6)
# :{'e', 'g', 'f'}
# symmetric_difference symmetric_difference_update
# ,
print('set2 set4', set2, set4)
# :set2 set4 {'a', 'b', 'c', 'd'} {'c', 'f', 'e', 'd', 'g'}
print('symmetric_difference', set2.symmetric_difference(set4), set4.symmetric_difference(set2))
# :{'g', 'e', 'a', 'f', 'b'}
print('set2 set4', set2, set4)
# :set2 set4 {'a', 'b', 'c', 'd'} {'c', 'f', 'e', 'd', 'g'}
#
set7 = set2.copy()
set8 = set4.copy()
print('set7 set8', set7, set8)
# :set7 set8 {'a', 'd', 'b', 'c'} {'e', 'c', 'd', 'g', 'f'}
set7.symmetric_difference_update(set4)
set8.symmetric_difference_update(set2)
print('symmetric_difference_update set7 set8', set7, set8)
# :symmetric_difference_update set7 set8 {'e', 'a', 'g', 'f', 'b'} {'e', 'a', 'g', 'b', 'f'}
# union: ,
print('set2 set4', set2, set4)
# :set2 set4 {'a', 'b', 'c', 'd'} {'c', 'f', 'e', 'd', 'g'}
print('union', set2.union(set4))
# :union {'e', 'a', 'f', 'c', 'd', 'g', 'b'}
# copy
set5 = set2.copy()
print('set5:', set5)
# :{'b', 'd', 'a', 'c'}
set2.add('z')
print(set2, set5)
# :{'z', 'a', 'd', 'c', 'b'} {'c', 'b', 'a', 'd'}
# True
print(set2, set4)
# :{'b', 'c', 'a', 'z', 'd'} {'e', 'c', 'g', 'f', 'd'}
print(set2.isdisjoint(set4))
# :False
#
set3 = {
'a', 'b', 'c'}
print('set2 set3', set2, set3)
# :set2 set3 {'c', 'b', 'z', 'a', 'd'} {'b', 'c', 'a'}
print('issubset', set3.issubset(set2))
# :issubset True
#
print('issuperset', set2.issuperset(set3))
# :issuperset True
#
set4.clear()
print(set4, type(set4))
# :set()