セットLOGIN

セット

Python のセットは他の言語と似ています。これは順序付けられていない、反復しない要素のセットです。その基本機能には、関係のテストと重複要素の削除が含まれます。 Set は dict に似ていますが、set は値を保存しません。

1. セットの作成

セットを作成するには、入力セットとしてリストを指定する必要があります

set1=set([123,456,789])
print(set1)

出力結果:

{456, 123, 789}

渡されたパラメータ [123,456,789] はリストであり、表示される {456, 123, 789} は、このセット内に 3 つの要素 456, 123, 789 があることを示しています。表示の順序はパラメータのリストと同じです。要素の順序が一貫していません。これは、セットが順序付けられていないことも示しています。

もう 1 つ、出力結果が中括弧内にあることがわかります。前回の学習により、タプル (tuple) は括弧を使用し、リスト (list) は角括弧を使用し、dict (辞書) は中括弧を使用していることがわかります。 dict はキーと値のペアを保存するのに対し、set はキー値のみを保存するものとして理解できる点を除いて、dict も順序付けされていません。

dict (辞書) を作成するとき、重複したキーがあり、後続のキーと値の値によって上書きされ、重複した要素はセット内で自動的にフィルターされることを思い出してください。

set1=set([123,456,789,123,123])
print(set1)

出力結果:

{456, 123, 789}

2. set への要素の追加

要素は、add(key) メソッドを通じてセットに追加できます。繰り返し可能です 追加されましたが、効果はありません

set1=set([123,456,789])
print(set1)
set1.add(100)
print(set1)
set1.add(100)
print(set1)

出力結果:

{456, 123, 789}
{456, 123, 100, 789}
{456, 123, 100, 789}

3. Set delete element

セットは次のとおりです。 Remove(key) メソッドで削除された

set1=set([123,456,789])
print(set1)
set1.remove(456)
print(set1)

の要素 出力結果:

{456, 123, 789}
{123, 789}

4. set の適用

set は順序なしセットであるため非繰り返し要素の場合、2 つのセットは数学的な意味で和集合、積集合、差分などの演算を実行できます。

edac59887302095e82b950a78cdc3c1.png

例:

set1=set('hello')
set2=set(['p','y','y','h','o','n'])
print(set1)
print(set2)
# 交集 (求两个 set 集合中相同的元素)
set3=set1 & set2
print('\n交集 set3:')
print(set3)
# 并集 (合并两个 set 集合的元素并去除重复的值)
set4=set1 | set2
print('\n并集 set4:')
print(set4)
# 差集
set5=set1 - set2
set6=set2 - set1
print('\n差集 set5:')
print(set5)
print('\n差集 set6:')
print( set6)
# 去除海量列表里重复元素,用 hash 来解决也行,只不过感觉在性能上不是很高,用 set 解决还是很不错的
list1 = [111,222,333,444,111,222,333,444,555,666]  
set7=set(list1)
print('\n去除列表里重复元素 set7:')
print(set7)

実行結果:

{'h', 'l', 'e', 'o'}
{'h', 'n', 'o', 'y', 'p'}
交集 set3:
{'h', 'o'}
并集 set4:
{'h', 'p', 'n', 'e', 'o', 'y', 'l'}
差集 set5:
{'l', 'e'}
差集 set6:
{'p', 'y', 'n'}
去除列表里重复元素 set7:
{555, 333, 111, 666, 444, 222}
次のセクション
コースウェア