文章目录
导读
本次知识点,很像C++中的容器,可以看我之前的博客
嵌入式c++(十)
嵌入式C++(十一)
嵌入式C++(十二)
一、time——处理时间的标准库
1.1 获取现在时间
(1) time.localtime() 本地时间
(2) time gmtime() UTC世界统-时间
北京时间比时间统-时间UTC早8个小时
import time
time_lac = time.localtime()
t_UTC = time.gmtime()
print("t_local",time_lac)
print("t_UTC",t_UTC)
time.ctime() # 返回本地时间字符串
1.2 时间戳和计时器
(1) time.time() 返回自纪元以来的秒數, 记录sleep
(2) time.pert_ counter() 随意选取- 个时间点,记录现在时间到该时间点的间隔秒数,记录sleep
(3) time.process_ time() 随意选取一 个时间点, 记录现在时间到该时间点的间隔秒数,不记录sleep
perf counter)精度较time()更高一些
t_1_start = time.time()
t_2_start = time.perf_counter()
t_3_start = time.process_time()
print(t_1_start)
print(t_2_start)
print(t_3_start)
1.3 格式化输出
(1) time.strftime 自定义格式化输出
扫描二维码关注公众号,回复: 14417939 查看本文章![]()
lctime = time.localtime()
time.strftime("%Y-%m-%d %A %H:%M:%S",lctime)
1.4 睡觉
time.sleep(1)
睡眠1秒
二、random——处理随机问题的标准库
随机数在计算机应用中十分常见
Python通过random库提供各种伪随机数
基本可以用于除加密解密算法外的大多数工程应用
2.1 随机种子——seed(a=None)
(1)相同种子会产生相同的随机数
(2)如果不设置随机种子,以系统当前时间为默认值
from random import *
seed(10)
print(random())
seed(10)
print(random())
2.2 随机整数
(1)randint(a,b)——产生[a,b]之间随机整数
num = [randint(1,10) for i in range(10)]
num
(2)randrange(a)——产生[0,a)之间的随机整数
num = [randrange(10) for i in range(10)]
num
(3)randrange(a,b,step)——产生[a,b)之间以step为步长的随机整数
num = [randrange(0,10,2) for i in range(10)]
num
2.3 随机浮点数
(1) random()——产生[0.0, 1.0)之间的随机浮点数
num = [random() for i in range(10)]
num
(2) uniform(a, b)——产生[a, b]之间的随机浮点数
num = [uniform(1.2,3.5) for i in range(10)]
num
2.4 序列用随机函数
(1) choice(seq)——从序列类型中随机返回一个元素
(2) choices(seq,weights=None, k)——对序列类型进行k次重复采样, 可设置权重
(3) shuffle(seq)——将序列类型中元素随机排列, 返回打乱后的序列
(4) sample(pop, k)——从pop类型中随机选取k个元素, 以列表类型返回
2.5 概率分布——高斯分布为例
gauss(mean, std)——生产一个符合高斯分布的随机数
多生成
三、collections——容器数据类型
3.1 namedtuple——具名元组
点的坐标,仅看数据,很难知道表达的是一个点的坐标
构建一个新的元组子类
定义方法如下: typename是元组名字,field_ names 是域名
1.可以调用属性
2.有元组性质
3.是元组的子类
3.2 Counter——计数器工具
1.是字典的子类
2.最常见的统计——most .commom(n)
提供n个频率最高的元素和计数
3.元素展开一elements()
4.其他一-些加减操作
3.3 deque——双向队列
列表访问数据非常快速
插入和删除操作非常慢一通过移动元素位置来实现
特别是insert(0, V)和pop(0),在列表开始进行的插入和删除操作
双向队列可以方便的在队列两边高效、快速的增加和删除元素
四、itertools库——迭代器
4.1 排列组合
(1) product——笛卡尔积
(2) permutations——排列
(3) combinations——组合
(4) combinations_ with_ replacement——元素可重复组合
4.2 拉链
(1) zip——短拉链
长度不一时,执行到最短的对象处,就停止
(2) zip_ longest——长拉链
长度不- -时,执行到最长的对象处,就停止,缺省元素用None或指定字符替代
4.3 无穷
(1) count(start=0, step=1)——计数
创建一个迭代器,它从start.值开始,返回均匀间隔的值
(2) cyclel(terable)——循环
创建-一个迭代器,返回iterable 中所有元素,无限重复
(3) repeat(object [ timesI])——重复
创建一个选代器,不断重复object。除非设定参数times ,否则将无限重复
4.4 锁链、枚举、分组等
(1) chain(iterables)——锁链
把一组迭代对象申联起来,形成一个更大的迭代器
(2) enumerate(iterable, start=0)——枚举 (Python内置)
产出由两个元素组成的元组,结构是(index,
item) , 其中index从start开始,item从iterable中取
(3) groupbyliterable, key=None)——分组
创建-一个迭代器,按照key指定的方式, 返回iterable 中连续的键和组
一般来说,要预先对数据进行排序
key,为None默认把连续重复元素分组
其余的,可以参考官方文档
总结