Python 3の集合set


文書ディレクトリ
  • Python 3の集合set
  • 集合
  • 重量除去原理
  • 声明
  • 一般的な操作関数
  • 増加
  • クリアセット
  • 削除
  • その他の
  • setの操作関数
  • Python 3の集合set
    ##需要シーン私達は1組のデータを保存する必要があって、しかし重複するデータを保存することを望みません!ユーザーのアカウント!
    しゅうごう
    ハッシュアルゴリズムにより、1つのコンテナに順序のない重複できない複数のデータを格納する.【無秩序・重複しない】
    Listの特徴:要素には入れ順があり、要素は繰り返すことができる.Setの特徴:元素は順序を入れないで、元素は繰り返してはいけない(注意:元素は順序を入れないが、しかし元素のsetの中の位置はこの元素のHashCodeが決定したので、その位置は実は固定したのです.
    例:チェーンテーブルとハッシュテーブルの違い.データ構造を学んだことがあるなら、チェーンテーブルの特性を知っています.listはチェーンテーブルsetがハッシュテーブルであり、ハッシュ値でアクセスするので、理論的なアクセス時間の複雑さはO(1)です.
    げんじゅうげんり
    setのデウェイトは2つの関数__でhash__および_eq__結合して実現した.1、2つの変数のハッシュ値が同じでない場合、この2つの変数は異なると考えられる.2、2つの変数のハッシュ値が同じ場合、呼び出し_eq__メソッドでは、戻り値がTrueの場合、この2つの変数は同じであり、1つを除去する必要があります.FALSEに戻った場合は、重さを取りません.
    宣言
  • set()方式
  • {}方式
  • s1 = set()  <classset>
    s2 = {“a”}   <classset>
    s3 = {}  <classdict>  #            
    
    >>> thisset = set(("Google", "Runoob", "Taobao"))
    >>> type(thisset)
    <class 'set'>
    >>> thisset
    {'Taobao', 'Google', 'Runoob'}
    >>>
    

    一般的な操作関数
    ふえる
  • 'add'は単一のデータを増加させ、戻り値はありません.
  • >>> a = {1, 2, 3}
    >>> a.add(5)
    >>> a
    {1, 2, 3, 5}
    >>>
    >>> a.add(7,8)
    Traceback (most recent call last):
      File "", line 1, in <module>
    TypeError: add() takes exactly one argument (2 given)
    >>>
    
  • update(x)は、複数のデータを追加し、戻り値がありません.

  • s.update(「文字列」)は、文字列をセットに追加します.s.update(「文字列」)文字列を単一文字に分割した後、コレクションに追加します.重複すると無視されます.
    >>> thisset
    {'Taobao', 'Google', 'Runoob'}
    >>>
    >>> thisset.update(('Taobao', 1, 2))
    >>> thisset
    {1, 2, 'Google', 'Runoob', 'Taobao'}
    
    >>> a = thisset.update(3)  #         
    Traceback (most recent call last):
      File "", line 1, in <module>
    TypeError: 'int' object is not iterable
    >>>
    
    >>>> a = thisset.update('a', 'b')
    >>> thisset
    {1, 2, 'Google', 'Runoob', 'a', 'b', 'Taobao'}
    >>>
    >>>
    

    addとupdateの集合addメソッド:入力する要素を全体として集合に追加します.集合updateメソッド:入力する要素を分割し、個体として集合に転送します.
    >>>a = set('boy')
    >>>a
    {'b', 'o', 'y'}
    >>>a.add('girl')
    >>>a
    {'girl', 'b', 'o', 'y'}
    >>>a.update('the')
    >>>a
    {'h', 'y', 'o', 'girl', 'e', 'b', 't'}
    

    クリアコレクション
  • 'clear'クリア
  • >>> a
    {1, 2, 3, 5, 9}
    >>>
    >>> a.clear() #     
    >>> a
    set()	#     
    >>>
    

    削除
  • 'pop'はランダムに1つ削除され、削除された要素
  • を返します.
  • remove(x)は、エラーがなく、戻り値がないデータを削除することを指定します.
  • discard(x)あるデータを削除し、エラーを報告せず、戻り値がない.
  • >>> a
    {'h', 'y', 'o', 'girl', 'e', 'b', 't'}
    >>> a.pop()
    'h'
    >>> a
    {'y', 'o', 'girl', 'e', 'b', 't'}
    >>> a.remove('y')
    >>> a
    {'o', 'girl', 'e', 'b', 't'}
    >>> 
    >>> 
    >>> a.remove('aa')
    Traceback (most recent call last):
      File "", line 1, in <module>
    KeyError: 'aa'
    >>> a.discard('aa')
    >>> a.discard('o')
    >>> a
    {'girl', 'e', 'b', 't'}
    >>> 
    

    その他
  • 'copy'レプリケーション
  • 'difference'の2つのセット間の差を求めるセット
  • 'difference_update’は差分セットを求め、異なるデータで自分に
  • を再付与する.
  • 'intersection_update’は交差を求めて自分に
  • を割り当てます
  • 'union'は並列セットを求め、'update'は並列セットを求め、自分に値を付与する.

  • コレクション:pythonに組み込まれた組合せデータ型の1つで、setは順序のない重複できない複数のデータを格納することを表す.hashアルゴリズムで追加したデータを繰り返さないようにします!
    setの操作関数
    >>> dir(set)
    ['__and__', '__class__', '__contains__',
    '__eq__','__gt__', '__hash__','__iand__',
    '__init__', '__isub__','__lt__', '__ne__',
    '__new__', '__or__','__repr__',
    '__ror__', '__rsub__', '__rxor__',
    'add','difference_update', 'discard',
    'intersection', 'issuperset', 'pop',
    'remove','symmetric_difference_update',
    'union', 'update']
    >>>