python set集合 heapq堆模块 双端队列deque
=========================================set集合=======================>>> set(range(10))
set()
>>> a = set()
>>> b = set()
>>> a.union(b)
set()
>>> a|b
set()
>>> a&b
set()
集合的遍历
>>> for x in a:
print x
集合的增删
>>> 1 in a
True
>>> 1 not in a
False
>>> a.add(4)
>>> a
set()
>>> a.remove(4)
>>> a
set()
s.update(t)
s |= t
返回增加了 set “t”中元素后的 set “s”
s.intersection_update(t)
s &= t
返回只保留含有 set “t”中元素的 set “s”
s.difference_update(t)
s -= t
返回删除了 set “t”中含有的元素后的 set “s”
s.symmetric_difference_update(t)
s ^= t
返回含有 set “t”或者 set “s”中有而不是两者都有的元素的 set “s”
s.add(x)
向 set “s”中增加元素 x
s.remove(x)
从 set “s”中删除元素 x, 如果不存在则引发 KeyError
s.discard(x)
如果在 set “s”中存在元素 x, 则删除
s.pop()
删除并且返回 set “s”中的一个不确定的元素, 如果为空则引发 KeyError
s.clear()
删除 set “s”中的所有元素
=========================heapq堆模块==================================
>>> from random import shuffle
>>> data = range(10)
>>> data
>>> from heapq import *
>>> shuffle(data)
>>> data
>>> heap=[]
>>> for n in data:
heappush(heap,n)
>>> heap
>>> heappush(heap,0.5)
>>> heap
>>> heappop(heap)
0
>>> heap
=======================================deque=============================
>>> from collections import deque
>>> q=deque(range(5))
>>> q
deque()
>>> q.append(5)
>>> q
deque()
>>> q.pop()
5
页:
[1]