conllectionsモジュール
- conllecctionsパイソンは、多くの有用なコレクションを提供して内蔵のモジュールの集まりです
1.有名なタプル
タプルは、点座標のセットとして定数で表されるタプルは、のように表すことができるされています。
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カスタムタプルオブジェクトを作成するために使用される関数であり、タプル要素の数を指定し、タプルの要素を参照するためのインデックスの代わりに使用することができる属性。
その結果、我々は簡単にnamedtupleとデータ型を定義することができ、それはタプルの不変性を持ち、かつ使いやすい、属性に応じて参照することができます。
# 默认字典 from collections import defaultdict # 用匿名函数来给他一个默认值 dic = defaultdict(lambda :'nan') # dic = {} # 如果找不到赋了一个默认值 dic['a'] = 1 print(dic['a']) print(dic['c'])
3.deque
データ記憶装置のリストを使用する場合、すばやくインデックスで要素にアクセスするが、要素を挿入および除去することは非常に遅く、リストは線形メモリ、大容量のデータであるため、効率が非常に低い挿入及び欠失です。
両端キューは、双方向リストの効率的な挿入および削除を達成キューに入れ、適しスタックすることです:
リスト値を追加 - >リニアテーブル
lis = [1,2,3] # 线性表 lis.append(4) print(lis) # [1,2,3,4]
実装両端キュープロパティのダブルエンドリストであるテーブル要素の末端に付加されています
- 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.カウンターカウンター
シンプルなカウンターで、例えば、表示される文字の数を数えます:
我々は、カウントのデータ型は、辞書を達成するために使用されている場合を学ぶ前に、
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})