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
  • 相关阅读:
    Redmine入门-安装
    【Spring Cloud笔记】 Eureka通过集群实现高可用
    【SpringBoot笔记】SpringBoot整合Druid数据连接池
    【Spring Cloud笔记】 断路器-hystrix
    【Spring Cloud笔记】Eureka注册中心增加权限认证
    Jenkins实现简单的CI功能
    【SpringBoot笔记】SpringBoot如何正确关闭应用
    Activi相关表归纳
    阿里云MySQL远程连接不上问题
    Storm入门-Storm与Spark对比
  • 原文地址:https://www.cnblogs.com/bfcs/p/11098241.html
Copyright © 2011-2022 走看看