Pythonの基本データ型であるSet

3804 ワード

setは無秩序なセットであり、セット内の各要素はユニークであり、セット自体は要素を追加、削除することができます.次に、セット(set)の特性を理解します.
集合の定義
a={1,True,'Hello world',(1,2,3)}
print(type(a))
#    set

メタグループは括弧()を使用し、リストは中括弧[]を使用し、コレクションは括弧{}を使用して定義されます.
集合のプロパティ
  • 無秩序
  • 以前は文字列、リスト、メタグループを共有していたときと同じ特徴がありました.秩序化されているので、インデックスとスライスで各要素にアクセスできます.しかし、コレクションは無秩序であり、インデックスやスライスを使用できないことを意味します.
    a={1,2,3,4,5}
    
    print(a[1])
    print(a[1:3])
    
    #         
    
  • 各要素はユニークな
  • です.
    リスト、メタグループを比較すると、集合の各要素が一意であることがわかります.集合のこのような特性のため、集合を使用して重くすることができます.
    a={1,2,3,4,4,3,2}
    
    print(a)
    #    {1,2,3,4}
    

    要素の追加
    add()またはupdate()は、集合に要素を追加できます.異なるのは、単一の要素を追加するときにadd()を使用します.追加されたオブジェクトがtuple()、list()、set()などのタイプの場合はupdate()を使用できます.次に、両者の違いをコードで説明します.
  • add()の使い方
  • a = {1,2,3,4,5}
    
    a.add(6)
    print(a)
    #    {1,2,3,4,5,6}
    
  • update()の使い方
  • a = {1,2,3,4,5}
    a.update((5,6,7))
    print(a)
    #    {1,2,3,4,5,6,7}
    

    要素の削除
    discard()とremove()は、集合内の要素を削除できます.2つの方法の唯一の違いは、要素が集合内に存在しない場合、discard()を使用して要素の集合を削除しても変わらないが、remove()はエラーを報告することです.
    a={1,2,3,4}
    
    a.discard(5)
    print(a)
    #    {1,2,3,4}
    
    a.remove(5)
    #   
    Traceback (most recent call last):
      File "", line 1, in 
    KeyError: 5
    
    

    pop()とclear()は、コレクション内の要素を削除することもできます.
    a={1,2,3,4,5}
    
    print(a.pop())
    #   1
    
    print(a)
    #   {2,3,4,5}
    
    
    a.clear()
    print(a)
    #    set()
    
    

    小結discard()、remove()、pop()、clear()の違い
  • discard()存在しない集合要素を削除しても
  • を誤ることはない.
  • remove()要素が存在しない集合要素を削除すると
  • とエラーが発生します.
  • pop()は、削除された要素
  • を返します.
  • clear()クリア要素
  • 集合の数学演算
    2つの集合の差を求めます
  • 需要:{1,2,3,4},{2,3,5}.第1の集合から第2の集合にも存在する要素
  • を取り除く.
    a={1,2,3,4}
    b={2,3,5}
    
    a-b
    #   {1,4}
    
     
    
    a.difference(b)
    #   {1,4}
    

    2つの集合の交差を求めます
  • 需要:{1,2,3,4},{2,3}の2つの集合の同じ要素
  • を求める
     a={1,2,3,4}
     b={2,3,5}
     
    a&b
    #   {2,3}
    
     
    
    a.intersection(b)
    #   {2,3}
    

    2つの集合の同時集合を求めます
  • 需要:{1,2,3,4},{3,4,5}の2つの集合を1つに結合し、重複要素
  • を持つことはできない.
     a={1,2,3,4}
     b={2,3,5}
     
    a|b
    #   {1,2,3,4,5}
    
     
    
    a.union(b)
    #   {1,2,3,4,5}
    
    

    上記の3つの方法は、ほとんどのニーズを満たすことができますが、2つのセットの同じ要素を除去し、次のコードに示すように、異なる要素を新しいセットにする必要があります.
    a={1,2,3,4}
    b={3,4,5,6}
    #   {1,2,5,6}
    
    a^b
    
     
    
    a.symmetric_difference(b)
    
    #   {1,2,5,6}
    

    コレクション内のより多くの組み込み方法
    コレクションをコピー
    a={1,2,3,4}
    b=a.copy()
    
    print(b)
    #   {1,2,3,4}
    
    

    2つの集合に共通要素があるかどうかを判断する
    a={1,2,3,4}
    b={100,200,300}
    c={1,100,4}
    
    print(a.isdisjoint(b))
    #          True
    
    print(a.isdisjoint(c))
    #          False
    

    ある集合に別の集合が含まれているかどうかを判断する
    a={1,2,3,4}
    b={1,2,3,4,5}
    
    #   a   b   
    print(a.issubset(b))
    #    True
    
    #   b   a   
    print(b.issubset(a))
    #    False
    

    コレクション内の要素がtrueであるかどうかを判断する
    print(all({1,2,3,'Test'}))
    #    True
    
    #           True
    print(all({}))
    #    True
    
    print(all({False,3,4,5}))
    #    False
    

    コレクションの長さの計算
    a={1,2,3,4,5}
    print(len(a))
    #    5
    
    print(len({}))
    #    0
    

    コレクション内の最大値の計算
    a={1,2,3,4,5}
    print(max(a))
    #    5
    

    コレクション内の最小値の計算
    a={1,2,3,4,5}
    print(min(a))
    #    1
    

    集合要素の和の計算
    a={1,2,3,4,5}
    print(sum(a))
    #    15
    

    要素が集合に存在するかどうかを判断する
    a={1,2,3,4,5}
    print(1 in a)
    #    True
    
    print(10 in a)
    #    False
    

    listとsetの相互変換
    a=[1,2,3,4,5]
    print(set(a))
    #   {1,2,3,4,5}
    
    a={1,2,3,4,5}
    print(list(a))
    #   [1,2,3,4,5]
    

    Listとsetの相互変換はlist中の重複要素を除去することができ,主に集合要素がユニークでなければならない特性を借りている.
    まとめ:集合はpythonの中で1種の重要なデータ型で、重点的に集合の基本的な特性を掌握して、熟練して差集、交差、並集を運用して、いくつかの内蔵の方法は先に理解することができて、後でコードを書く時資料を調べるのに便利です