collection系列

1.计数器(counter)

Counter是对字典类型的补充,用于追踪值的出现次数。

我们从中挑选一些相对常用的方法来举例:

在上面的例子我们可以看出,counter方法返回的是一个字典,它将字符串中出现的所有字符都进行了统计。在这里再介绍一下update方法,这个update方法是将两次统计的结果相加,和字典的update略有不同。

2.有序字典(OrderedDict):

orderdDict是对字典类型的补充,主要是可以按照字典元素添加顺序输出。

普通字典:无序的,它依靠key,value之间的索引进行匹配。

 dict={                      
'':'test1',
'':'test2',
'':'test3',
'':'test4',
'':'test5',
'':'test6'
}
for k,v in dict.items():
print k,v

aaarticlea/png;base64,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" alt="" />


有序字典:字典在内部自动维护了一个key列表。

import collections
dict1=collections.OrderedDict()
for lines in range(1,7):
dict1[str(lines)]='test%s'%(lines) for k,v in dict1.items():
print k,v

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXEAAACoCAIAAACZo0mgAAAHPUlEQVR4nO3dP24b6R0GYF1ltxjuIQIEixQBYqgYJAY2hoEg9RopVqAWcOXCnU9A8AY+A9lmbzGNfQ+mkEQPKUqab+bVx7HyCE9lUaOfCcyr+cfvvfjTn3++b/HTj/U17zZfPl+d5Vf/n+u/868+df/9dPn4iz+/++HsM8+N93DvYkaZsrj89Mfm18XLfK+bxdXnL7uvX0/48uXM/+v9O//qU3c70h+rV/dG+vXz7uvXndz3Hj5uRpkCvAAyBUiSKUCSTAGSZAqQJFOAJJkCJMkUIEmmAEkyBUiSKUCSTAGSZAqQFM6Udr1Zt7P+YPH8J4TvWiZTmsXVdnfz1ZXusU27Wl8nd/KTG5wyITBc8jilWVxty/fYdt1to5nyyAbHTQgMd+ZMuTl8CGbK4xuUKfDczpYpzeJy3e0OvzbL3rpYTbvaf79bH6zE11xv+j92kyBPbrB0QmCEsx+nXK67E4cVTbvq7hLh5jX7WGnaVdet2ruwaK43/cR5aIOjJwSKzDRTltuDf2yuN7u7HDnKlIEbHD0hUGSOmXLqLObgRKa9/faJ3yVT4LzmmylPXri9uz18eBVGpsBZzTFTFj/9uNweX5ddXp+uL2iuN7vt1ZMbHD0hUCSaKe2qK78xvI+Ppl1t+xdie5vqP3Jy9PhJu+6O0+fUBqdMCAwXf462+FnVb/eMD6+8PnQv+ehG8u7e9dqTG5wyITCczxACSTIFSJIpQJJMAZJkCpAkU4AkmQIkyRQgSaYASTIFSJIpQJJMAZJkCpAkU4AkmQIkxTKl7S0he7RI0kzMf0J4ATKZ0q67/QKON0siDd9p63SbTpkQGC6QKfeXgO3vwE+q0G06cUJguFim9HfR4XtsnW7TKRMCRZ7lGu1R49dJZ+k2LZoQGCGfKY/3BB6/uG636YgJgSLhTGkWV9uS3bVyt+mICYEi8c6wB083HviR+t2mZRMCRWKZMm53rdltKlCggmBn2MHuulwPOr+o1m06ekKgSCZTltt7t2wG36mt0206ZUJguMjzKUe1oWUPv1foNp04ITCczxACSTIFSJIpQNLF+w8f33/4+J+r3//y17/JFGCii9dv3r5+8/bNv/797relTAEmus2U12/evv/wUaYAE8kUIEmmAEkyBUiSKUCSTAGSZAqQJFOAJJkCJMkUICmWKcttb2WSe8vEzsH8J4QXIJMp/aUe23X3SLHOfXW6TadMCAwXy5RvbcTDVqjeq9BtOnFCYLj89ZRmcbnuhp5c1Ok2nTIhUCSfKQOriM/YbaosGZ5PMlNuq7xKdtfK3aYjJgSKPMO5z/Vm+I2V+t2mpRMCRZ7l+ZThJxeVu01HTAgUuc2Uv//yz2Cm9A8rnnhlxW7TcRMCRS5uAuWy/cfo9WhvDyt6f/bbdTclUxbpbtMpEwJFbtfNf/fbcvS6+SeuoZbcHq7QbTpxQmC4VAd7/wpI2eXPCt2mEycEhtMZBiTJFCBJpgBJMgVIkilAkkwBkmQKkCRTgCSZAiTJFCBJpgBJMgVIkilAkkwBkmQKkJTPlPtLtM3N/CeE71c4U24WTCraY+t0m06ZEBgumSn7tdSK9tg63aZTJgSGS2ZKu+669VV/5dcnVe42HTEhUCSWKXdVXpcD99j63aalEwIjBNe43iwXPzSFe2y1btPREwJFMpmyv4SRypR4t+noCYEigUxpFlfbuzquSKbEu02nTAgUSWTKUeHO4WWOJ362SrfplAmBIunnU3LnPsFu0ykTAkXOnCmLKt2mEycEhgs/n9LvHB3YH1qn23TKhMBwPkMIJMkUIEmmAEkyBUiSKUCSTAGSZAqQJFOAJJkCJMkUIEmmAEkyBUiSKUCSTAGSZAqQFFo3v7fWyf0VT+Zg/hPCyxDLlNH9pHW6TeO/BTjp/JlSp9tUpkAdoUy53ozLhWrdpqMnBIqkMmW1bm+aMYZeqqjcbTpiQmCE2HHK7lsVacGhR71u07ETAkWe5V5yu+76nTuPqNZtOnpCoMizZEo/Ap54ZZVu0ykTAkUifcmX6253UAaYyJRkt+mECYEioQ72w8sTkXOfYLfplAmBIplzn37BaNOuupKKvzrdplMmBIaLXU/p14YW3VKp1m06ekJgOJ8hBJJkCpAkU4AkmQIkyRQgSaYASTIFSJIpQJJMAZJkCpAkU4AkmQIkyRQgSaYASTIFSEpmynL74JomMzH/CeF7F+ri6NVl3CzUOLxAp1K36YQJgeFy/T5jl3et1G06YUJguNi6+eP+7NfpNp0yIVAkuW7+t6sVA44IanabjpsQGCGRKe2q2+26ruvv2wMPCup0m06ZECiSy5Sjpe0ndIYt0t2mUyYEisQy5SACekcZT/xslW7TKRMCRZ6lhzCSKdFu0/ETAkUy95KX22Rf8iLdbTplQqBI6PmU3gWLgUcZe3W6TadMCAwXeza/f+t3nt2moycEhvMZQiBJpgBJMgVIkilAkkwBkmQKkPQ/Tr4ZX5/l5DEAAAAASUVORK5CYII=" alt="" />

3.默认字典(defaultdict)

defaultdict是对字典的类型的补充,他默认给字典的值设置了一个类型。

有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {'k1': 大于66 , 'k2': 小于66}
常用方法:
dic={}
li=[11,22,33,44,55,66,77,88,99]
for item in li:
if item>66:
if 'k2'in dic.keys():
dic['k2'].append(item)
else:
dic['k2']=[item,] else:
if 'k1' in dic.keys():
dic['k1'].append(item)
else:
dic['k1']=[item

用默认字典实现

 import collections
value=[11,22,33,44,55,66,77,88,99]
dict1=collections.defaultdict(list)
for list1 in value:
if list1<=66:
dict1['k1'].append(list1)
else:
dict1['k2'].append(list1)
print dict1

4、可命名元组(namedtuple)

根据nametuple可以创建一个包含tuple所有功能以及其他功能的类型:

主要用于‘坐标’的表示。用法如下:

 import collections as coll
>>> mytuple=coll.namedtuple('mytuple',['x','y'])
>>> n=mytuple(1,2)
>>> n
mytuple(x=1, y=2)
>>> n.x
1
>>> n.y
2

5、双向队列(deque)

一个线程安全的双向队列:双向队列我们可以理解为两个栈底相连的栈,和队列的先进先出不同,元素可以从这个队列的两端分别加入或者删除值。

 a=coll.deque()
a.append(1)
a.append(2)
a.append(3)
print a.pop()
3
print a.popleft()
1

python第三天---collections类的更多相关文章

  1. Python进阶(三)--global和类属性

    global关键字 一句话概括为:告诉python解释器,global声明的变量为全局作用域内定义的变量.解释器就会到全局作用域内寻找global定义的变量. python的类属性 类属性相当于其他O ...

  2. python第三十一天-----类的封装、继承,多态.....

    封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. cla ...

  3. python第三十天-类

    编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很 ...

  4. JAVA笔记19-容器之三 Set接口、List接口、Collections类、Comparable接口(重要)

    一.Set接口 //HashSet综合举例 import java.util.*; public class Test{ public static void main(String[] args){ ...

  5. 孤荷凌寒自学python第三十四天python的文件操作对file类的对象学习

     孤荷凌寒自学python第三十四天python的文件操作对file类的对象学习 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.close() 当一个file对象执行此方法时,将关闭当前 ...

  6. python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列

    1.计数器(counter) Counter是对字典类型的补充,用于追踪值的出现次数. ps:具备字典的所有功能 + 自己的功能  Counter 我们从中挑选一些相对常用的方法来举例: 在上面的例子 ...

  7. 学习Python的三种境界

    前言 王国维在<人间词话>中将读书分为了三种境界:"古今之成大事业.大学问者,必经过三种之境界:'昨夜西风凋碧树,独上高楼,望尽天涯路'.此第一境也.'衣带渐宽终不悔,为伊消得人 ...

  8. Collections类常用方法总结

    1. sort 对集合进行排序 public static <T extends Comparable<? super T>> void sort(List<T> ...

  9. python高级编程之(类级):子类内建类型

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #类级 #在2.2中,提出了类型(type0与类(class)统一( ...

随机推荐

  1. keil MDK编译器警告和错误详解(不定期更新)

    工作后从单片机转成ARM,刚开始用ADS1.2编译器,用了一段时间,因为我接手的项目的老程序正是用ADS编译的,部门也大都在用.在学单片机的时候用的是keil c51编译器,ads和这个编译器在易用性 ...

  2. C语言的本质(6)——位运算

    位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型 ...

  3. MYSQL 简单的循环存储过程

    BEGIN ; ; DO DO ); ; ) THEN ; END IF; END WHILE; ; ; END WHILE; END

  4. mit java open course assignment #2

    package come; public class Marothon { public static void FirstName(String[] args1,int[] args2){ int ...

  5. 练习3.20 a 将中缀表达式转换为后缀表达式

    //将中缀表达式转换为后缀表达式 int main() { ; ]={,,,,,,,}; char tmp; PtrToStack s; s = CreateStack( MaxSize ); ) { ...

  6. 深入理解java String 对象的不可变性

    下面我们通过一组图表来解释Java字符串的不可变性 1.声明一个String对象 String s = "abcd"; 2.将一个String变量赋值给另一个String变量 St ...

  7. Genealogical tree(拓扑结构+邻接表+优先队列)

    Genealogical tree Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) ...

  8. [置顶] Mysql存储过程入门知识

    Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...

  9. 学习Java这几个快捷键你得知道(不断更新中)

    java中的System.out.println();的快捷键    --------先输入sysout  在按 alt + /

  10. JS学习笔记(四)常用对象

    Error // 语法 throw new Error("消息"); 类似于C#中的Exception对象 // alert(num); try { throw new Error ...