深度之眼(十七)——Python标准库

文章目录

导读

在这里插入图片描述

本次知识点,很像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默认把连续重复元素分组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其余的,可以参考官方文档

总结

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_52592798/article/details/126024773