zoukankan      html  css  js  c++  java
  • 常用内建模块-集合模块

    collections  集合模块,提供了许多有用的集合类

    from collections import namedtuple
    
    Point = namedtuple('Point',['x','y'])
    p = Point(1,2)
    print(p.x)  #1
    print(p.y)  #2

    namedtuple是一个函数,定义一种数据类型,具备tuple的不变性,用以构建只有少数属性,但是没有方法的对象,可根据属性来引用

    deque  使用list时,访问快,但插入和删除很慢,使用deque可以高效实现插入和删除操作的双向列表,适用于队列和栈

     1 from collections import deque
     2 
     3 q = deque(['a','b','c'])
     4 q.append('s')
     5 q.append('p')
     6 print(q)  #deque(['a', 'b', 'c', 's', 'p'])
     7 q.pop()
     8 print(q)  #deque(['a', 'b', 'c', 's'])
     9 q.appendleft('t')
    10 print(q)
    11 q.popleft()  #deque(['t', 'a', 'b', 'c', 's'])
    12 print(q)  #deque(['a', 'b', 'c', 's'])
    View Code

    defaultdict  除了在key不存在时返回默认值,其他行为跟dict完全一样

    1 from collections import defaultdict
    2 
    3 dd = defaultdict(lambda:'不存在的')
    4 dd['key1'] = 'a'
    5 print(dd['key1'])  #a
    6 print(dd['key2'])  #不存在的
    View Code

    OrderedDict  使用dict时,对dict迭代无法确定key的顺序

    1 from collections import OrderedDict
    2 
    3 od = OrderedDict([('a',1),('b',2),('c',3)])
    4 print(od)  #OrderedDict([('a', 1), ('b', 2), ('c', 3)])
    View Code

    Countter  简单的计数器

    1 from collections import Counter
    2 
    3 c = Counter()
    4 for ch in 'qsccftthn':
    5     c[ch] = c[ch]+1
    6 print(c)

    base64  用记事本打开exejpgpdf这些文件时,会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。Base64是一种最常见的二进制编码方法。

    1 import base64
    2 
    3 print(base64.b64encode(b'abcdefg'))  #b'YWJjZGVmZw=='
    4 print(base64.b64decode(b'YWJjZGVmZw=='))  #b'abcdefg'
    View Code
  • 相关阅读:
    vscode vue代码提示
    解决VMware nat service等服务不能启动
    vscode突然无法格式化代码
    【必看精贴】微信网页分享开发,配置本地调试
    ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'name' of undefined
    python使用mysql数据库
    pycharm下载第三方包
    canvas绘制网络字体
    解决npm 下载速度慢的问题
    【已解决】canvas跨域问题
  • 原文地址:https://www.cnblogs.com/bfcs/p/11098241.html
Copyright © 2011-2022 走看看