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
  • 相关阅读:
    可能是把 ZooKeeper 概念讲的最清楚的一篇文章
    Tomcat基本知识(一)
    PowerDesigner显示mysql数据表注释
    java中wait和notify的虚假唤醒问题
    为什么wait和notify只能在synchronized中?
    一篇blog带你了解java中的锁
    jvm类加载机制总结
    Java的浅拷贝与深拷贝总结
    政府网站公祭日,如何使网站整体变灰
    java 为什么重写equals一定要重写hashcode?
  • 原文地址:https://www.cnblogs.com/bfcs/p/11098241.html
Copyright © 2011-2022 走看看