Pythonにおける組み込みモジュールcollectionsの一般的な使い方のまとめ

2271 ワード

1.Counter
  • Counterは、辞書オブジェクトのサブクラスです.Counter()関数はcollectionsモジュールの関数で、list、tupleなどの反復可能なオブジェクトを受信し、Counter辞書を返します.Counter辞書を返すキーは、Counter()関数が受信した反復可能オブジェクト内の一意の要素であり、Counter辞書の値はCounter()関数が受信した反復可能オブジェクト内の一意の要素の出現回数である.
    from collections import Counter
    lis = [1, 2, 1, 3, 3, 2, 1, 2, 3, 2, 1, 3, 2, 2, 1]
    c = Counter(lis)  #   Counter      c
    print(c)
    # result:
    Counter({2: 6, 1: 5, 3: 4})
    #       
    print(c[1])
    #       c
    for k, v in c.items():
        print(k, '---->', v)
    

  • most_common()関数の使用
  • Counterクラスのオブジェクトcでよく使われる関数はmost_です.common()は、オブジェクトcがmost_を呼び出すとcommon()関数では、最も一般的な要素と要素の出現回数からなるN個のメタグループを基本リスト要素として含むリストを返します.ここで、Nは自分で指定したパラメータです.
    from collections import Counter
    
    lis = [1, 2, 1, 3, 3, 2, 1, 2, 3, 2, 1, 3, 2, 2, 1]
    c = Counter(lis)
    c.most_common(2)
    # result:
    [(2, 6), (1, 5)]
    

  • 2.defaultdict
  • defalutdictはPythonで内蔵されている辞書に似ており、defaultdictを使用すると辞書に存在しないキーにアクセスすると異常は放出されません.
  • defaultdictは、辞書のキーを初期化するためにデフォルトの値を使用します.ディクショナリ値の設定はdefaultdictオブジェクトの作成時に設定値のデータ型を指定する必要があります.具体的なコードは以下の通りです.
    from collections import defaultdict
    
    names_dict = defaultdict(int)
    names_dict['curry'] = 1
    names_dict['harden'] = 2
    names_dict['durant'] = 3
    sara_number = names_dict['Sara']
    print(sara_number)
    # result
    0
    
  • 3.deque
  • dequeの最大容量は10で、10要素
    from collections import deque
    
    my_deque = deque(maxlen=10)
    for i in range(10):
        my_deque.append(i+1)
    print(my_deque)
    # result:
    deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], maxlen=10)
    
  • しか収容できません.
  • my_deque後に5つの要素を追加すると、キューのキューヘッダの前から5つの要素が削除され、キューの最後から5つの要素が追加されます.
    for i in range(10,15):
        my_deque.append(i+1)
    print(my_deque)
    # result
    deque([6, 7, 8, 9, 10, 11, 12, 13, 14, 15], maxlen=10)
    

  • 4.namedtuple
  • 名前固定メタグループを作成し、nametuple()関数は2つのパラメータを受信し、最初のパラメータは名前固定メタグループのnameを受信し、2番目のパラメータはメタグループの属性
    from collections import namedtuple
    
    Person = namedtuple('Person', 'name, age, job')
    Mike = Person(name='Mike', age=30, job='Data Science')
    Kate = Person(name='Kate', age=32, job='Project Manager')
    print(Mike)
    print(Kate)
    
  • である.