zoukankan      html  css  js  c++  java
  • python-26-其他常用模块(一)

    前言

    常用模块自然是我们用python语言日常中常用到的模块,比如前面说的re,但是还是有比较多是常用的默认,我们一起了解下。

    一、collections模块

    在内置数据类型(dict、list、set、tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。

    多认识下其它的数据类型:

    1. namedtuple: 生成可以使用名字来访问元素内容的tuple
    2. queue:队列先进先出
    3. deque: 双端队列,可以快速的从另外一侧追加和推出对象
    4. OrderedDict: 有序字典
    5. defaultdict: 带有默认值的字典
    6. Counter: 计数器,主要用来计数

    1、namedtuple 生成可以使用名字来访问元素内容的tuple

    # 1、namedtuple 生成可以使用名字来访问元素内容的tuple
    from collections import namedtuple
    Point = namedtuple('Point', ['x', 'y', 'z'])
    p = Point(1, 6, 5)
    print(p.x)
    print(p.y)
    print(p.z)
    print(p)

    2、queue: 队列先进先出

    # 2、queue: 队列先进先出
    import queue
    q = queue.Queue()
    q.put(10)
    q.put(4)
    q.put(6)
    print(q.get())
    print(q.get())
    print(q.get())
    print(q.get())      # 最后取不到一直在等待,直到有新的值进来
    print(q.qsize())     # 查看还有多少个值可以取

    3、dueue双端队列,可以快速的从另外一侧追加和推出对象

    # 3、dueue双端队列,可以快速的从另外一侧追加和推出对象
    from collections import deque
    dq = deque([2, 3])
    dq.append(4)          # 从后面放数据
    dq.appendleft(1)      # 从前面放数据
    dq.insert(4, 5)       # index插入数据
    print(dq)
    print(dq.pop())       # 从后面取数据
    print(dq.popleft())   # 从前面取数据
    print(dq)

    4、OrderedDict的Key是有序的

    # 4、OrderedDict的Key是有序的
    from collections import OrderedDict
    od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
    print(od['a'])
    for k in od:
        print(od[k])

    5、defaultdict,实例,将大于55放入k1,否则放入k2

    from collections import defaultdict
    values = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
    my_dict = defaultdict(list)
    for value in values:
        if value>55:
            my_dict['k1'].append(value)
        else:
            my_dict['k2'].append(value)
    print(my_dict)

    使用dict时,如果引用的Key不存在,就会抛出KeyError。如果希望key不存在时,返回一个默认值,就可以用

    from collections import defaultdict
    d = defaultdict(lambda: 5)
    print(d['k'])

    6、Counter 将元素作为key,其计数作为value

    from collections import Counter
    c = Counter('zzasdhasidhiohs')
    print(c)

    二、time模块

    python当中,和时间有关系的通常用time模块有这三种方式:

    • 1.格式化的时间字符串
    • 2.时间戳
    • 3.结构化时间,元组()

    1、strftime:格式化的时间字符串:年月日 时间

    # 1、strftime:格式化的时间字符串:年月日 时间
    import time
    print(time.strftime('%Y-%m-%d %H:%M:%S'))
    print(time.strftime('%Y-%m-%d %H:%M'))
    print(time.strftime('%Y-%m-%d'))
    print(time.strftime('%H:%M'))

     2、时间戳:time.time()

    # 2、时间戳:time.time()
    import time
    print(time.time())

     3、localtime:结构化时间,元组()

    # 3、localtime:结构化时间,元组()
    import time
    loc_time = time.localtime()
    print(loc_time)
    print(loc_time.tm_year)

    时间转换:

    1、时间戳转换结构化时间转换

    # 1、时间戳转换结构化时间转换
    import time
    t = time.time()
    print(time.localtime(t))
    print(time.gmtime(t))

    2、结构化时间转换转换时间戳

    # 2、结构化时间转换转换时间戳
    import time
    q = time.localtime()
    print(time.mktime(q))

    3、字符串格式化时间转换结构化时间

    # 3、字符串格式化时间转换结构化时间
    import time
    print(time.strptime('2020.3.8', '%Y.%m.%d'))
    print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(3500000000)))

    asctime、ctime转换:

    # asctime、ctime转换
    import time
    print(time.asctime())   # 结构化时间转字符串格式化时间Sun Mar  8 22:27:26 2020
    print(time.ctime())     # 时间戳转字符串格式化时间: Sun Mar  8 22:27:26 2020

     欢迎来大家QQ交流群一起学习:482713805

  • 相关阅读:
    MySQL与SQLServer的语法区别
    Linux系统ELK环境搭建
    springboot_yml配置, 以及 properties 和yml转换示例
    mybatis-plus的 mapper.xml 路径配置问题
    Windows下 启动redis
    Mysql 创建库,删除库 命令,脚本
    mybatis中传入多个参数时,接口调用报错Parameter '*****' not found ...
    构建启动Vue项目
    HyperLedger/Fabric区块连网络-编译启动单节点
    HyperLedger/Fabric区块连网络 死磕fabric
  • 原文地址:https://www.cnblogs.com/gsxl/p/12445109.html
Copyright © 2011-2022 走看看