Python笔记(5):sys模块,os模块,set,heap,deque简介

来源:互联网 发布:汕头市大数据产业协会 编辑:程序博客网 时间:2024/05/05 04:57

sys module

sys模块提供了一些访问python解释器的变量和函数的方法:
argv:用来访问传递给python的参数,比如argv[1]就是接收的第一个参数,argv[0]则是文件名
exit([arg]):退出当前程序,arg是可选项,表示退出时返回的值或者错误
modules:一个字典,用来存储模块的名称与模块的对应关系
path:python用来寻找模块的路径名的一个list
platform:平台的标识符,比如win32,linux2
stdin:标准输入
stdout:标准输出
stderr:标准错误

os module

os模块可以用来访问一些操作系统提供的服务,比如创建增加删除文件和文件夹,等等,下面是一些比较重要的例子
environ:返回所有的环境变量的键值对
sep:路径中的分割符
pathsep:不同path之间的分割符
linesep:不同行的分割符
urandom(n):生成一个n字节的随机数据
打开浏览器:
可以使用webbrowser模块:
import webbrowser
webbrowser.open("http://weibo.com")


一些数据结构

set

python2.3以后,语言直接包含了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])


原创粉丝点击