コレクションモジュールのpythonスムース

コレクションモジュールは、いくつかの中に、一般的なデータ構造パイソン以外のデータ構造を提供

  • namedtuple() 特殊タプルサブクラスは、名前と添字にアクセスするために使用することができます
  • 両端キュー:両端キュー、他の側からは、迅速かつ追加オブジェクトリリースすることができ
  • カウンター:メインをカウントするカウンタ
  • OrderedDict:注文した辞書
  • defaultdict:デフォルト値で辞書
  • ChainMap:辞書に似た容器、ビューに設定された複数のマップ

namedtupleの名前が、示唆名前を持つタプルで、以下yourtuple.keyを通じてアクセス辞書状のアクセス方法は、あります

#!は/ usr / binに/のpython3 
# - * -コーディング:UTF-8 - * - 
コレクションからnamedtupleインポート

名= [ 
    ( '男'、 '1988年4月11日'、 '张三')、 '女'に'1993年3月26日'、 '李四')、 '男'、 '1990年6月2日'、 '王五')
] 
人= namedtuple( '人'、[ 'セックス'、 '誕生日' '名前']) 人= namedtuple( '人'、( 'セックス'、 '誕生日'、 '名前'))
パーソン= namedtuple( '人'、 '性別、誕生日、名前') パーソン= namedtuple (「人」、「セックス誕生日名」)

:__name__ ==「__main__」の場合
    :人の中の人のための
        人=人。_make(人物) 
        #を作成することができる_make(タプル型)、または新しいメソッド呼び出し
        #1人=人物(人物[0 ]、人[1]、人[2]) 
        印刷(人)
        プリント(person.name、人[0])


 出力:

人(性別= 'M'、誕生日= '1988年4月11日'、名前= ' ジョー・スミス')
張Mの
人(性別= 'F'、誕生日= '1993年3月26日'、名前= ' ジョン・ドウ「)
ジョン・ドウ、女性
一人(性別=」男性「誕生日=」1990年6月2日「を、名前=」 5の王)
王5人の男性

 

注:namedtuple(PARM1、PARM2)

      コンストラクタのparm1の名前は、PARM2は、リスト、タプル、または文字列であること

      PARM2要素の数や、同じパラメータ、渡す必要があるパラメータの数:人(「M」、「1988年4月11日」、「ジョン・ドウ」、「1383333333」)が予想される3つの引数与えられますが、です4

 

collections.deque両端またはポップ(POP)の両方から(追記)を追加するため、キュー、スレッドの安全支持体の端部に新しい両端キューオブジェクトゲインアクセスを返し、Oの複雑さ(1)。
list、オブジェクトが同様の動作をサポートし、複雑なグループのO(n)のリストの長さより大きな消費増加は
デフォルトmaxlenをなし、それは任意の長さに成長することができない場合。それ以外の場合は、両端キューは、指定された最大長に制限されます。定義された両端キュー全長と、新しいエントリが追加されたときに、もう一方の端からポップアップの項目の同じ数。
サポートされているメソッド:

  • (x)を追加:Xは右側に追加され
  • appendleft(x):xは左に追加され
  • クリア():クリアすべての要素、長さが0になります
  • コピー():簡易コピーを作成します
  • (x)をカウント:計算された数は、キュー要素xに等しいです。
  • (反復可能)拡張:キューでの添加元素は、右の反復可能
  • extendleft(反復可能):キューのiterable左注添加元素:左を追加するときは、パラメータのiterableを追加するために変わります
  • 指標(X [、]を停止し、[開始]):(停止前に、開始する開始から)x番目の要素を返します。ValueErrorを上げ、見つからない場合は、最初に一致を返します。
  • 挿入(I、X):iは位置xに挿入されます。注:maxlenを長さの制限を超えた長い両端キューにつながる挿入した場合、それははIndexErrorを上昇します。
  • ポップ():右端の要素を削除
  • popleft():左端の要素を削除します
  • (値)を削除します。最初の1つの見つかった値を削除します。ValueErrorをスローしません
  • ()リバース:逆の順序で両端キューを。Noneを返します。
  • MAXLEN:キューの最大長は、Noneを制限されていないされませんでした。
    コレクションをインポート両端キューの
    D =両端キュー(MAXLEN = 10 、印刷(D)
    d.extendを(' のHello World ' 
    [i.upper()のために I においてD] 
    [ ' P '' Y '' T '' H ' ' O ' ' N ' ] 
    d.append(' E ' 
    d.appendleft('F ' プリント(D)
出力:
両端キュー([]、maxlenを= 10)
両端キュー([' F ' 'L'、 'L'、 'O'、 ''、 'W'、 'O'、R' 」、 'L'、 'D']、MAXLEN = 10)

 



カウンタ

カウンターは、主に、あなたの目標周波数カウントにアクセスするために使用される辞書のサブクラスです。
一般的な方法:

  • 要素():イテレータを返すカウントが1未満である場合、各要素について繰り返し計算の回数、要素は、無視されます。
  • most_common([N]):要素を提供するために最も頻繁にアクセスさNのリストを返し、カウントChainMapを
  • 減算([反復可能-またはマッピング]):オブジェクトから繰り返し減算要素、入力及び出力が0または負であってもよいです
  • アップデート([反復可能-またはマッピング]):繰り返し回数のオブジェクトまたはオブジェクト(またはカウンター)から別のマップから要素を追加。
    インポートコレクション
     プリント(collections.Counter(' Hello Worldの' ))
    统计单词数
    プリント(collections.Counter(' のHello World Hello Worldのハローnihao ' .split()))
出力:
カウンタ({ 'L':3 ' O '2、R '':1、 'W':1、 'H':1、 'D':1、 'E':1、' ':1})
カウンタ({'ハロー':3、 '世界':2 'nihao':1})

OrderedDict

障害のキーのPythonの辞書の順序は、シーケンシャルコントロールが追加されません。
collections.OrderedDict彼らは注文の予約辞書オブジェクトを追加します。

    コレクションインポートOrderedDict 
    demo_dict = { " ":1、" B ":2、" C ":3 } 
    order_dict = OrderedDict(demo_dict)
     プリント(demo_dict、order_dict)
    demo_dict [ ' S ' ] = 5
     プリント(demo_dict)
    order_dict 【' S ' ] 5 =
     印刷(order_dict) 出力{ 'B':2 '':1、 'C':3} OrderedDict([( 'B'、2)、(A ''、1) 、( 'C'、3)]) {


'S':5 'B':2 '':1、 'C':3}
OrderedDict([( 'B'、2)、(A ''、1)、( 'C'、3) 、( 'S'、5) ])

defaultdict

defaultdict(factory)デフォルト値を提供することは重要な辞書ではありません。引数なし呼び出しパラメータのデフォルト値を返す関数でなければなりません。Noneに何も渡さない場合、デフォルト

 

コレクションインポートdefaultdict 
demo_dict = {}
 試みるプリント(demo_dict [ ' S ' ]) KeyError例外
を除い通過
default_dict = defaultdict(STR)
default_dict [ ' S ' ]
 プリント(demo_dict)
 プリント(default_dict) 

出力
{}
(defaultdictを<クラスのSTR '>、{ 'S': ''})

ChainMap

辞書以上に相当ChainMap合計。

コレクションインポートChainMap 
D1 = { " A ":1、" B ":2、" AA ":1 } 
D2 = { " AA ":11、" BB ":22、" B ":3 } 
SD = ChainMapを( D1、D2)
 プリント(SD)

のための K、V sd.items():
     プリント(K、V)

出力:
ChainMap({ 'AA':1、 '':1、 'B':2}、{ 'B':図3に示すように、 'BB':22、 'AA':11})
1 2の
1 。
B 2
Bbの22によって
AA 1

注意:同じキー値を、フロントカバーの後ろに。

 

参考:著者:onemore
          出典:https://www.cnblogs.com/dianel/

    オリジナル2:http://www.zlovezl.cn/articles/collections-in-python/

 



おすすめ

転載: www.cnblogs.com/mushusheng/p/11550969.html