保留N个元素collections.deque

保留有限历史记录collections.deque

deque(maxlen=N)新建一个固定大小的队列,当新的元素加入并队列已满的时候,最老的元素自动被移除.

from collections import deque  
d = deque()  # 创建一个空的 deque
d为双端队列
双端队列是一种具有队列和栈的性质的数据结构:
元素可以从两端弹出,其限定插入和删除操作在表的两端进行。
deque 支持从两端快速添加和删除元素,时间复杂度为 O(1)。

添加元素
d.append(x)  从右端添加一个元素
d.appendleft(x)  从左端添加一个元素

删除元素
d.pop() 从右端删除并返回一个元素
d.popleft() 从左端删除并返回一个元素

查看元素( Python 3.7+ 中新增)
d.peek() 查看并返回右端的元素,但不删除它
d.peekleft() 查看并返回左边的元素,但不删除它

d=deque(maxlen=3)
maxlen:在创建deque是设置最大长度,当deque达到这个长度时,新添加的元素会导致从另一端删除一个元素

from collections import deque

q = deque(maxlen=3)
q.append(1)
q.append([1, 2, 4])
q.append(1)
print(q)
'>>> deque([1, [1, 2, 4], 1], maxlen=3)'
q.append(2)
q.append(5)
q.append(6)
print(q)
'>>> deque([2, 5, 6], maxlen=3)'
q.appendleft(9)
print(q)
'>>> deque([9, 2, 5], maxlen=3)'
print(q.pop())
'>>> 5'
print(q.popleft())
'>>> 9'
print(q)
'>>> deque([2], maxlen=3)'

查找序列中出现次数最多的元素

collections.Counter 适合所有需要制表或计数数据的场合

from collections import Counter

list1 = [1,2,3,4,5,6,7,4,5,6,3,4,5,6,5,6,7,6,8]
counts = Counter(list1)
#出现频率最高的三个
numbers = counts.most_common(3)
print(numbers)
# [(6, 5), (5, 4), (4, 3)]
#元素出现次数
print(counts[6])
#5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值