sys module
os module
set
>>> set(range(10))
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
set的主要作用就是消除重复和计算机从属关系,你也可以使用set类型来计算交集和并集等运算,如下
>>> a = set([1, 2, 3])
>>> b = set([2, 3, 4])
>>> a.union(b)
set([1, 2, 3, 4])
>>> a | b
set([1, 2, 3, 4])
>>> c = a & b
>>> c.issubset(a)
True
>>> c <= a
True
>>> c.issuperset(a)
False
>>> c >= a
False
>>> a.intersection(b)
set([2, 3])
>>> a & b
set([2, 3])
>>> a.difference(b)
set([1])
>>> a - b
set([1])
>>> a.symmetric_difference(b)
set([1, 4])
>>> a ^ b
set([1, 4])
>>> a.copy()
set([1, 2, 3])
>>> a.copy() is a
False
set不能作为其他set的成员,但是可以用frozenset代替
heap
python不提供堆这个结构,但是提供了一个堆操作的模块,但是要作用在一个List上面:
heappush(heap, x):将值为x的元素压入heap中
heappop(heap): 弹出最小的元素
heapify(list):使一个任意的list拥有heap的属性
heapreplace(heap, x):弹出heap中最小的值,并且压入x值到heap中去
nlargest(n, iter):返回在iter中最大的n个值
nsmallest(n, iter):返回在iter中最小的n个值
deque
deque在python2.4以后在collections模块中,python2.5中collections中加了defaultdict结构(当dict中没有key时,会返回一个默认值,这个里面还有可能会增加B-tree和Fibonacci heap)
deque可以从一个可迭代类型中创建,用法如下:
>>> from collections import deque
>>> q = deque(range(5))
>>> q.append(5)
>>> q.appendleft(6)
>>> q
deque([6, 0, 1, 2, 3, 4, 5])
>>> q.pop()
5
>>> q.popleft()
6
>>> q.rotate(3)
>>> q
deque([2, 3, 4, 0, 1])
>>> q.rotate(-1)
>>> q
deque([3, 4, 0, 1, 2])