説明:
セットは、繰り返されない要素の順序付けられていないシーケンスです。セットとリストは非常に似ています
セットとリストの違い:
- コレクションに保存できるのは不変のオブジェクトのみです
- コレクションに保存されているオブジェクトは順序付けられていません(要素が挿入された順序で保存されていません)
- 重複する要素はコレクションに表示できず、表示されません
コレクションを作成します。
中括弧{}またはset()を使用してコレクションを作成できます。注:空のコレクションを作成するには、{}を使用して空の辞書を作成するため、{}の代わりにset()を使用する必要があります。
方法1:{}を使用してコレクションを作成する
s = {
10,3,5,1,2,1,2,3,1,1,1,1}
print(s) # {1, 2, 3, 5, 10}
print(type(s)) # <class 'set'>
上記のコードからわかるように、コレクションに格納されているオブジェクトは無秩序であり、重複する要素はありません(重複排除に使用できます)
集合中只能存储不可变对象
a = {
[1,2,3],[4,6,7]}
print(a) # 报错 TypeError: unhashable type: 'list'
方法2:set()関数を使用してコレクションを作成する
创建一个空集合
s = set()
print(s) # set()
print(type(s)) # <class 'set'>
set()を使用してシーケンスと辞書をセットに変換します。set()を使用して辞書をセットに変換する場合、辞書内のキーのみが含まれます。
s = set([1,3,4,4,5,1,1,2,3,4,5])
print(s) # {1, 2, 3, 4, 5}
s = set('hello')
print(s) # {'h', 'o', 'l', 'e'}
s = set({
'a':1,'b':2,'c':3})
print(s) # {'a', 'c', 'b'}
セットの使用:
- コレクション内の要素を確認するには、inとnotinを使用します
s = {
'a','b',1,2,3,1}
print('c' in s) # False
print(1 in s) # True
print(2 not in s) # False
- len()を使用して、コレクション内の要素の数を取得します
s = {
'a','b',1,2,3,1}
print(s) # {1, 2, 3, 'a', 'b'}
print(len(s)) # 5
- add()は、コレクションに要素を追加します。要素がすでに存在する場合、操作は実行されません。
s = {
'a','b',1,2,3,1}
s.add(3)
s.add(10)
s.add('hello')
print(s) # {1, 2, 3, 10, 'hello', 'b', 'a'}
- update()はコレクション内の要素を現在のコレクションに追加し、update()はシーケンスまたは辞書をパラメーターとして渡すことができ、辞書はキーのみを使用します
s1 = {
1,2,3}
s2 = set("hello")
print(s2) # {'l', 'o', 'e', 'h'}
s1.update(s2) # 将一个集合中的元素添加到当前集合中
print(s1) # {'h', 1, 2, 3, 'e', 'o', 'l'}
s1 = {
1,2,3}
s1.update((10,20,30,40)) # 传递一个序列作为参数
print(s1) # {1, 2, 3, 40, 10, 20, 30}
s1 = {
1,2,3}
s1.update({
100:'aa',200:'bb',300:'cc',400:'dd'}) # 传递一个字典作为参数
print(s1) # {400, 1, 2, 3, 100, 200, 300}
- pop()は、セット内の要素をランダムに削除して、
s = {
4, 2, 3, 100, 40, 'o', 'a', 'h',}
result = s.pop()
print(result) # 2
- remove(x)コレクション内の指定された要素xを削除します
s = {
4, 2, 3, 100, 40, 'o', 'a', 'h',}
s.remove(100)
print(s) # {2, 3, 4, 'h', 40, 'o', 'a'}
- clear()コレクションをクリアします
s = {
4, 2, 3, 100, 40, 'o', 'a', 'h',}
s.clear()
print(s) # set() 空集合