083 conllectionsモジュール

2025 ワード

目次
  • conllectionsモジュール
  • 1.有名なグループ
  • 2.nametuple有名メタグループの役割
  • 3.deque
  • 4.カウンタCounter

  • コントロールモジュール
  • conllecctionsはpython内に構築された集合モジュールであり、多くの有用な集合クラス
  • を提供する.
    1.有名なグループ
  • tupleはメタグループであり、座標のような不変の集合を表すことができる点を
    p = (1,2)
  • と表すことができる.
  • 実際には、このようなメタグループを通じて、座標軸
  • であるとは考えにくい.
  • numedtuple有名メタグループ表示
    from collections import namedtuple
    Point = namedtuple('Point', ['x', 'y'])
    p = Point(1, 2)
    p.x # 1
    p.y # 2
  • 2.nametuple有名グループの役割
  • namedtupleは、カスタムtupleオブジェクトを作成し、tuple要素の個数を規定し、インデックスではなく属性でtupleの要素を参照できる関数です.
  • このように、namedtupleを使用すると、tupleの不変性を備え、属性に基づいて参照することができ、非常に便利なデータ型を簡単に定義することができます.
    #     
    from collections import defaultdict
    #              
    dic = defaultdict(lambda :'nan')  # dic = {}  #             
    dic['a'] = 1
    print(dic['a'])
    print(dic['c'])

  • 3.deque
  • listを使用してデータを格納する場合、インデックスによる要素へのアクセスは速いが、listは線形ストレージであり、データ量が大きい場合、挿入と削除の効率が低いため、要素の挿入と削除は遅い.
  • dequeは、キューおよびスタックに適した挿入および削除操作を効率的に実現するための双方向リストです.
  • list追加値-->リニアテーブル
    lis = [1,2,3]  #    
    lis.append(4)
    print(lis)
    # [1,2,3,4]
  • はdequeでテーブルの両端に要素を追加することを実現し,これが両端リストの特性である.
  • de.append()チェーンテーブルの後ろに要素を追加します.これはリスト追加と同じ
  • です.
  • de.appendleft()チェーンテーブルの先頭に要素を追加します.これはリストでは実現しにくい
  • です.
  • de.popleft()チェーンテーブルの先頭から要素
  • を削除する.
    from collections import deque  #   
    
    de = deque([1,2,3])
    de.append(4)
    print(de)
    de.appendleft(0)
    print(de)
    de.popleft()
    de.popleft()
    print(de)


    4.カウンタCounter
  • は単純なカウンタであり、例えば統計文字の出現個数:
  • 私たちが以前データ型を勉強していたとき、カウントは辞書で実現された
    from collections import Counter
    s= 'programming'
    
    c = Counter()  #   
    for i in s:
        c[i] +=1
    print(c)
    
    # Counter({'r': 2, 'g': 2, 'm': 2, 'p': 1, 'o': 1, 'a': 1, 'i': 1, 'n': 1})
  • でした.