Python笔记(10)----集合、堆、双端队列

本文深入讲解了三种常用的数据结构——集合、堆和双端队列的使用方法及操作技巧,包括集合的基本操作如并集、交集等,堆的创建与操作如入堆与弹出最小元素等,以及双端队列的插入与旋转等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合、堆、双端队列

1、集合

集合set

print set(range(10))
print set([0, 1, 2, 3,0,1,2,3, 4, 5])
print set(['wo','ni','ta'])

结果:
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
set([0, 1, 2, 3, 4, 5])
set(['wo', 'ni', 'ta'])

a=set([1,2,3])
b=set([2,3,4])
print a.union(b)
c = a & b
print c.issubset(a)
print c <= a
print c.issuperset(a)
print c >= a
print a.intersection(b)
print a & b
print a.difference(b)
print a-b
print a.symmetric_difference(b)
print a ^ b
print a.copy()
print a.copy() is a
a = set ()
b = set ()
print a.add(b)

结果:
set([1, 2, 3, 4])
True
True
False
False
set([2, 3])
set([2, 3])
set([1])
set([1])
set([1, 4])
set([1, 4])
set([1, 2, 3])
False

2、堆

堆heap
1 heappush(heap,X) :将X入堆。

from heapq import *
from random import shuffle
data = range(10)
shuffle(data)
heap = []
for n in data:
heappush(heap,n)
print heap
heappush(heap,0.5)
print heap

结果:
[0, 1, 2, 3, 6, 8, 7, 5, 4, 9]
[0, 0.5, 2, 3, 1, 8, 7, 5, 4, 9, 6]

2 heappop(heap):将堆中最小元素弹出。

print heappop(heap)
print heappop(heap)
print heappop(heap)
print heap

结果:
0
0.5
1
[2, 3, 7, 4, 6, 8, 9, 5]

3 heapify(heap):将heap属性强制应用到任意一个列表。
heapreplace(heap,X):将heap中最小的元素弹出,并将X入堆。

heap = [3,2,1,4,5,7,6]
heapify(heap)
print heap
heapreplace(heap,0.5)
print heap
heapreplace(heap,10)
print heap

结果:
[1, 2, 3, 4, 5, 7, 6]
[0.5, 2, 3, 4, 5, 7, 6]
[2, 4, 3, 10, 5, 7, 6]

3双端队列

双端队列deque

from collections import deque
q = deque(range(5))
q.append(5)
q.appendleft(6)
print q
print q.pop()
print q.popleft()
q.rotate(3)
print q
q.rotate(-1)
print q

结果:
deque([6, 0, 1, 2, 3, 4, 5])
5
6
deque([2, 3, 4, 0, 1])
deque([3, 4, 0, 1, 2])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值