18.经常使用的模块
collections模块
在内置数据类型(dict,list,tuple,set)的基础上,collections还提供了几个额外的数据类型:
namedtuple,deque,Counter,OrderedDict,defaultdict
namedtuple:生成可以使用名字来访问元素内容的tuple
from collections import namedtuple Point=namedtuple('point',['x','y']) #元组的名字和参数 p=Point(1,2) print(p.x,p.y,p) #打印x值,y值和整个p
执行结果:
1 2 point(x=1, y=2)
deque:双端队列,可快速的从另外队列一侧追加和推出对象
普通队列:
首先,在python中,可以直接创建一个队列,
引入模块import queue
创建队列 Q=queue.Queue()
往队列中添加值 Q.put(2)
从队列中取出一个值 Q.get() 如果数据取完,程序不会停止,阻塞等待队列中加入新的数据
查看队列中有多少值 Q.qsize()
import queue q=queue.Queue() q.put(2) print(q.qsize()) print(q.get()) print(q.qsize())
执行结果:
1
2
0
双端队列:可以从头和尾放入数据,也可以从头和尾取出数据
from collections import deque
q=deque([1,2]) #创建一个双端队列
deque.append(q,3) #从尾部放数据
deque.appendleft(q,4) # 从头部放数据
deque.pop(q) #从尾部取数据
deque.insert(q,0,1) #从头部取数据
counter
计数器,用来计算跟踪出现的次数,是一个无序的容器类型,以字典的键值对形式存储
OrderedDict有序字典
使用dit时,key是无序的,要想在迭代时保持key的顺序,就可以使用OrderedDict
from collections import OrderedDict cd=OrderedDict([('a',1),('b',2),('c',3)]) for i in cd.items(): print(i)
执行结果:
('a', 1)
('b', 2)
('c', 3)
defaultdict:带有默认值的字典
在没有特定设置的情况下,字典的新建key的默认value是默认值
from collections import defaultdict d=defaultdict(lambda:5) #注意参数必须为可调用对象,如果直接写5,会报错,就可写成lambada函数,
print(d['1'])
执行结果:
5
time模块
time.sleep(num) 休眠num秒
time.asctime()
按照Sun Oct 11 16:11:03 2020格式打印当前时间
time.time()
返回一个以秒为单位的浮点数
时间戳:(从1970年1月1号0:0:0开始按秒计算的偏移量),给机器看的时间
time.strftime(参数)
返回当前的年月日,简化星期,时分秒
时间字符串:给人看的(1997-9-8)
a=time.strftime("%Y-%m-%d %a %H:%M:%S")
print(a)
执行结果:2020-10-17 Sat 22:59:21
time.localtime()
返回一种特定的结构化时间
结构化时间:元组(计算时用的)
a=time.localtime() print(a.tm_year) #可使用key单独获取某个值
print(a)
执行结果:
2020
time.struct_time(tm_year=2020, tm_mon=10, tm_mday=17, tm_hour=23, tm_min=2, tm_sec=21, tm_wday=5, tm_yday=291, tm_isdst=0)
三种时间的转换:
时间戳可以和结构化时间互相转换
结构化时间和时间字符串也可互相转换
但是时间字符串和时间戳不可转换,因此时间字符串和时间戳的转换需要经过结构化时间
时间戳和结构化时间转换:
时间戳->结构化时间:localtime()/gmtime()
a=time.time() #a为时间戳时间 print(time.localtime(a)) #北京时间 print(time.gmtime(a)) #国外时间
执行结果:
time.struct_time(tm_year=2020, tm_mon=10, tm_mday=17, tm_hour=23, tm_min=6, tm_sec=17, tm_wday=5, tm_yday=291, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=10, tm_mday=17, tm_hour=15, tm_min=6, tm_sec=17, tm_wday=5, tm_yday=291, tm_isdst=0)
结构化时间->时间戳:time.mktime()
b=time.localtime() #b为结构化时间 print(time.mktime(b))
执行结果:
1602947242.0
结构化时间和格式化时间:
格式化时间->结构化时间:time.strptime()
c=time.strptime('2020-8-9','%Y-%m-%d') #要在方法中指明字符串的格式 print(c)
执行结果:
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=222, tm_isdst=-1)
结构化时间->格式化时间:
a=time.localtime() b=time.strftime('%Y-%m-%d %H:%M:%S',a) #要在方法中指明字符串的格式 print(b)
执行结果:
2020-10-17 23:10:20
random模块
random.random() 大与0小于1之间的小数
random.uniform(1,3) 大于1小于3之间的小数
random.randint(a,b) 大于等于且小于等于b的整数
random.randrange(1,10,2) 大于等于1且小于10之间的奇数
random.choice([a,b,c]) a,b或c
ramdom.sample([a,b,c],n) 任意n个元素组合
random.shuffle(可迭代对象) 打乱参数的顺序
sys模块
该模块的功能:与pyhton解释器交互的模块
sys.platform 返回操作系统平台名称
sys.version 获取python解释程序的版本信息
sys.exit() 退出程序,正常退出时执行exit(0),错误时退出执行exit(1)
sys.path 返回模块的搜索路径

浙公网安备 33010602011771号