码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 深度之眼(十七)——Python标准库


    文章目录

    • 导读
    • 一、time——处理时间的标准库
      • 1.1 获取现在时间
      • 1.2 时间戳和计时器
      • 1.3 格式化输出
      • 1.4 睡觉
    • 二、random——处理随机问题的标准库
      • 2.1 随机种子——seed(a=None)
      • 2.2 随机整数
        • (1)randint(a,b)——产生[a,b]之间随机整数
        • (2)randrange(a)——产生[0,a)之间的随机整数
        • (3)randrange(a,b,step)——产生[a,b)之间以step为步长的随机整数
      • 2.3 随机浮点数
        • (1) random()——产生[0.0, 1.0)之间的随机浮点数
        • (2) uniform(a, b)——产生[a, b]之间的随机浮点数
      • 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——具名元组
      • 3.2 Counter——计数器工具
      • 3.3 deque——双向队列
    • 四、itertools库——迭代器
      • 4.1 排列组合
        • (1) product——笛卡尔积
        • (2) permutations——排列
        • (3) combinations——组合
        • (4) combinations_ with_ replacement——元素可重复组合
      • 4.2 拉链
        • (1) zip——短拉链
        • (2) zip_ longest——长拉链
      • 4.3 无穷
        • (1) count(start=0, step=1)——计数
        • (2) cyclel(terable)——循环
        • (3) repeat(object [ timesI])——重复
      • 4.4 锁链、枚举、分组等
        • (1) chain(iterables)——锁链
        • (2) enumerate(iterable, start=0)——枚举 (Python内置)
        • (3) groupbyliterable, key=None)——分组
    • 总结

    导读

    在这里插入图片描述

    本次知识点,很像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)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    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
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    1.3 格式化输出

    (1) time.strftime 自定义格式化输出

    lctime = time.localtime()
    time.strftime("%Y-%m-%d %A %H:%M:%S",lctime)
    
    • 1
    • 2

    在这里插入图片描述

    1.4 睡觉

    time.sleep(1)
    
    • 1

    睡眠1秒

    二、random——处理随机问题的标准库

    随机数在计算机应用中十分常见
    Python通过random库提供各种伪随机数
    基本可以用于除加密解密算法外的大多数工程应用

    2.1 随机种子——seed(a=None)

    (1)相同种子会产生相同的随机数
    (2)如果不设置随机种子,以系统当前时间为默认值

    from random import *
    seed(10)
    print(random())
    seed(10)
    print(random())
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    2.2 随机整数

    (1)randint(a,b)——产生[a,b]之间随机整数

    num = [randint(1,10) for i in range(10)]
    num
    
    • 1
    • 2

    在这里插入图片描述

    (2)randrange(a)——产生[0,a)之间的随机整数

    num = [randrange(10) for i in range(10)]
    num
    
    • 1
    • 2

    在这里插入图片描述

    (3)randrange(a,b,step)——产生[a,b)之间以step为步长的随机整数

    num = [randrange(0,10,2) for i in range(10)]
    num
    
    • 1
    • 2

    在这里插入图片描述

    2.3 随机浮点数

    (1) random()——产生[0.0, 1.0)之间的随机浮点数

    num = [random() for i in range(10)]
    num
    
    • 1
    • 2

    在这里插入图片描述

    (2) uniform(a, b)——产生[a, b]之间的随机浮点数

    num = [uniform(1.2,3.5) for i in range(10)]
    num
    
    • 1
    • 2

    在这里插入图片描述

    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默认把连续重复元素分组
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

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

    总结

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

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

  • 相关阅读:
    Python3.x安装Pandas教程
    IIS中搭建.Net Core项目,步骤详解
    腾讯待办是什么?关停之后如何继续提醒待办事项?
    如何避免脚注重复?
    docker.6-Dockerfile精讲及新型容器镜像构建技术
    “智能+”时代,深维智信如何借助阿里云打造AI内容生成系统
    Win11系统鼠标右键无法打开一直转圈解决方法
    Android native层实现MediaCodec编码H264/HEVC
    网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇就够了。
    【QT】点击按钮弹出对话框的注意事项
  • 原文地址:https://blog.csdn.net/m0_52592798/article/details/126024773
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号