【Python】collections

一 deque

使用deque在队列两端添加(append)或弹出(pop)元素的算法复杂度大约是O(1),但是对于list对象改变列表长度和数据位置的操作例如 pop(0)和insert(0, v)操作的复杂度高达O(n)。

# iterable和maxlen可以没有
deque(iterable, maxlen)

1.双端队列

  • ⑴ append 右添加
  • ⑵ appendleft 左添加
  • ⑶ pop 右移除
  • ⑷ popleft 左移除

2.使用方式

from collections import deque

test = deque([1,2,3],2)
print(test) 

test2 = deque([1,2,3])
print(test2)

test3 = deque()
test3.append(1)
test3.append(2)
print(test3)
test3.appendleft(0)
print(test3)
test3.pop()
print(test3)
test3.popleft()
print(test3)

输出:

deque([2, 3], maxlen=2)
deque([1, 2, 3])
deque([1, 2])
deque([0, 1, 2])
deque([0, 1])
deque([1])

二 Counter

Counter类的目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value。计数值可以是任意的Interger(包括0和负数)。

1. 创建
>>> c = Counter()  # 创建一个空的Counter类
>>> c = Counter('gallahad')  # 从一个可iterable对象(list、tuple、dict、字符串等)创建
>>> c = Counter({'a': 4, 'b': 2})  # 从一个字典对象创建
>>> c = Counter(a=4, b=2)  # 从一组键值对创建
2.计数值的访问与缺失的键
>>> c = Counter("abcdefgab")
>>> c["a"]
2
>>> c["c"]
1
>>> c["h"]
0

猜你喜欢

转载自blog.csdn.net/cheidou123/article/details/95011615