collections模块

Posted shicongcong0910

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了collections模块相关的知识,希望对你有一定的参考价值。

1. collections

在内部数据类型的基础上,加上collections模块提供的额外数据类型 namedtuple,deque,Counter
1.1 namedple
  命名元祖有助于对元祖的每个位置赋予意义(用来产生使用名称来访问元元素的数据对象)
from  collections import namedtuple   #导入模块collections中的namedtuple功能
point = namedtuple(point,[x,y]) #定义元祖名称,并对元祖每个元素进行赋予意义
p = point(1,2)
print(p.x)

 


作用:增加代码的可读性(namedple是函数,不是类)
1.2 deque
   deque 使用list存储数据时,按索引访问数据很快,但是插入和删除很慢,
因为list是线性存储,数据量很大的时候,插入和删除的效率很低
deque是为了高效实现插入和删除操作的双向列表,适用于队列和栈
        队列:先进先出 FIFO 栈:后进先出 LIFO
from collections import deque
q = deque([a,b,c])
q.append(x)
q.appendleft(z)
print(q)

 

  deque实现了list的append()和pop()操作外,还支持了appendleft()和popleft()操作,高效率的对list头部尾部进行操作

  1.3  Counter

    计数,统计出现的次数,默认排序,以字典的键值对形式存储,其中元素为key,计数的值为value
from collections import Counter
c = Counter(asdfghjkqgwtezx)
print(c)
# 结果:
Counter({g: 2, a: 1, s: 1, d: 1, f: 1, h: 1, j: 1, k: 1,
         q: 1, w: 1, t: 1, e: 1, z: 1, x: 1})

 






以上是关于collections模块的主要内容,如果未能解决你的问题,请参考以下文章

如何有条件地将 C 代码片段编译到我的 Perl 模块?

elasticsearch代码片段,及工具类SearchEsUtil.java

推荐net开发cad入门阅读代码片段

Python基础22_模块,collections,time,random,functools

CTS测试CtsWindowManagerDeviceTestCases模块的testShowWhenLockedImeActivityAndShowSoftInput测试fail项解决方法(代码片段

模块( collections , time , random , os , sys)