counterカウンタcollectionモジュール

2857 ワード

import collections

c1 = collections.Counter("aaaabbbbcccjjj")
print(type(c1))
print(c1,'
') """ Counter({'a': 4, 'b': 4, 'c': 3, 'j': 3}) """ # c1.update("xxwc") print(c1,'
') #Counter({'a': 4, 'b': 4, 'c': 4, 'j': 3, 'x': 2, 'w': 1}) c1.subtract("a") print(c1,'
') #Counter({'b': 4, 'c': 4, 'a': 3, 'j': 3, 'x': 2, 'w': 1}) # 3 。 ret = c1.most_common(3) print(ret) print(type(ret),'
') #[('b', 4), ('c', 4), ('a', 3)] #  # c1 for item in c1.elements():     print(item) print('
') for k,v in c1.items():     print(k,v)     print(type(k),type(v)) print('
') """ a 3   b 4   c 4   """ for k in c1.keys():     print(k) """ a b c j x w """

ちくじじしょ
d1 = collections.OrderedDict()
d1['k3'] = 'v3'
d1['k1'] = 'v1'
d1['k2'] = 'v2'
print(d1)

OrderedDict([('k3', 'v3'), ('k1', 'v1'), ('k2', 'v2')])
デフォルト辞書
デフォルトの辞書を作成するときに値のタイプを指定する必要があります.
d2 = collections.defaultdict(list)
d2['k1'].append('v1')
print(d2)

defaultdict(, {'k1': ['v1']})
名前付き元祖
#        mytupleclass
mytupleclass = collections.namedtuple('mytupleclass',['x','y','z'])
#        ,    
obj = mytupleclass(1,2,3)
print(obj.x)     #1
print(obj.y)      #2
print(obj.z)       #3

双方向キュー
双方向キューの両方にアクセス可能
In [89]: d = collections.deque()

In [90]: type(d)
Out[90]: collections.deque

In [91]: d.append(1)         #append        

In [92]: d.append(2)

In [93]: d.appendleft(3)

In [94]: d
Out[94]: deque([3, 1, 2])

In [96]: d.extend([5,8])      #     

In [97]: d
Out[97]: deque([3, 1, 2, 5, 8])

In [98]: d.pop()     #     
Out[98]: 8

In [99]: d
Out[99]: deque([3, 1, 2, 5])

In [100]: d.remove(1)   #      

In [101]: d
Out[101]: deque([3, 2, 5])

In [102]: d.rotate(1)    #       

In [103]: d
Out[103]: deque([5, 3, 2])

In [104]: d.rotate(2)

In [105]: d
Out[105]: deque([3, 2, 5])

たんほうこうキュー
queueモジュールの中にあります.一方的なキューは比較的多く使用されます.
一方通行の列は入りながら、同じ側に出るしかありません
In [106]: import Queue

In [107]: dd = Queue.Queue()

In [108]: type(dd)
Out[108]: instance

In [110]: dd.put(1)

In [111]: dd.put(3)

In [112]: dd
Out[112]: 

In [115]: dd.qsize()
Out[115]: 2