Collection系列


 1.  计数器(Counter)

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

ps  具备字典所有功能 + 自己的功能

Counter

 import collections
obj = collections.Counter('haskhflajgahg')
print(obj)
ret = obj.most_common(4)#取前四位(很少用到)
print(ret)

结果:

Counter({'a': 3, 'h': 3, 'g': 2, 'l': 1, 'f': 1, 's': 1, 'j': 1, 'k': 1})

[('a', 3), ('h', 3), ('g', 2), ('l', 1)]

most_common  elements  items

 import collections
obj = collections.Counter('haskhflajgahg')
print(obj)
ret = obj.most_common(4)#取前四位(很少用到)
print(ret)
print('-----分割符-------')
for item in obj.elements():
print(item)
print('-----分割符-------')
for k,v in obj .items():
print(k,v)

结果:

Counter({'h': 3, 'a': 3, 'g': 2, 'k': 1, 's': 1, 'j': 1, 'l': 1, 'f': 1})

[('h', 3), ('a', 3), ('g', 2), ('k', 1)]

-----分割符-------

k

h

h

h

s

j

a

a

a

l

f

g

g

-----分割符-------

k 1

h 3

s 1

j 1

a 3

l 1

f 1

g 2

elements   =》  原生的值

items      =》  处理过后的数据

 import  collections
obj = collections.Counter(['','','',''])
print(obj)
obj.update(['Young','',''])
print(obj)
obj.subtract(['Young','',''])
print(obj) 

2.  有序字典(orderedDict)

orderedDict是对字典类型的补充,他记住了字典元素添加的顺序

3.   默认字典

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

 from collections import defaultdict

 values = [11,22,33,44,55,66,77,88,99,100]
my_dict = defaultdict(list)
for value in values:
if value>66:
my_dict['k1'].append(value)
else:
my_dict['k2'].append(value)
print(my_dict)

结果:

defaultdict(<class 'list'>, {'k2': [11, 22, 33, 44, 55, 66], 'k1': [77, 88, 99, 100]})

4.  可命名元组(namedtuple)

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

 import collections
#new a class , defaultdict
MytupleClass = collections.namedtuple('MytupleClass',['x','y','z'])
print(help(MytupleClass))
obj = MytupleClass(11,22,33)
print(obj.x)
print(obj.y)
print(obj.z)

5.  双向队列(deque)

 import  collections
d = collections.deque()
d.append('')
d.append('')
d.appendleft('')
print(d)
r = d.count('')
print(r)
d.extend(['yy','uu','ii'])
print(d)
d.extendleft(['',''])
print(d)
d.rotate(3)
print(d)

结果:

deque(['1', '1', '10'])

2

deque(['1', '1', '10', 'yy', 'uu', 'ii'])

deque(['2', '1', '1', '1', '10', 'yy', 'uu', 'ii'])

deque(['yy', 'uu', 'ii', '2', '1', '1', '1', '10'])

6.  单向队列

 import queue
# d = collection.deque()
q = queue.Queue()
q.put('')
q.put('')
print(q.qsize())
print(q.get())
print(q.get())

结果:

2

123

456

Python 从零学起(纯基础) 笔记 之 collection系列的更多相关文章

  1. Python 从零学起(纯基础) 笔记 (二)

    Day02 自学笔记  1.  对于Python,一切事物都是对象,对象基于类创建,对象具有的功能去类里找 name = ‘Young’       -   对象 Li1 = [11,22,33]   ...

  2. Python 从零学起(纯基础) 笔记 之 迭代器、生成器和修饰器

    Python的迭代器. 生成器和修饰器 1. 迭代器是访问集合元素的一种方式,从第一个到最后,只许前进不许后退. 优点:不要求事先准备好整个迭代过程中的所有元素,仅仅在迭代到某个元素时才计算该元素,而 ...

  3. Python 从零学起(纯基础) 笔记 之 深浅拷贝

    深浅拷贝 1. import  copy#浅拷贝copy.copy()#深拷贝copy.deepcopy()#赋值 = 2.   对于数字和字符串而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个 ...

  4. Python 从零学起(纯基础) 笔记(一)

    作者身份:初学Python,菜鸟 ================================================= 1. 主提示符和次提示符  >>> 主提示符   ...

  5. [Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念

    上一篇:[Python] 文科生零基础学编程系列--对象.集合.属性.方法的基本定义 下一篇: (仍先以最简单的Excel的VBA为例,语法与Python不同,但概念和逻辑需要理解透彻) p.p1 { ...

  6. [Python] 文科生零基础学编程系列三——数据运算符的基本类别

    上一篇:[Python] 文科生零基础学编程系列二--数据类型.变量.常量的基础概念 下一篇: ※ 程序的执行过程,就是对数据进行运算的过程. 不同的数据类型,可以进行不同的运算, 按照数据运算类型的 ...

  7. 知了课堂 Python Flask零基础 笔记整理

    目录 起步 安装Python2.7: Python虚拟环境介绍与安装: pip安装flask: 认识url: URL详解 web服务器和应用服务器以及web应用框架: Flask 第一个flask程序 ...

  8. Python入门方法推荐,哪些基础知识必学?

    很多想入门的小伙伴还不知道Python应该怎么学,哪些知识必学,今天我们就来盘点一下. 01.入门方法推荐 总体来讲,找一本靠谱的书,由浅入深,边看边练. 网上的学习教程有很多,多到不知道如何选择.所 ...

  9. Python基础笔记系列十一:标准输入输出、文件读写和指针等操作

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 标准输入输出一.输入 在sublime中这个时候需要安装SublimeRE ...

随机推荐

  1. Python聊天室

    小编心语:锵锵锵!各位看官注意了啊,走过路过表错过!上篇博文主要介绍了基于基于Server-Sent Event的简单在线聊天室,相信不管各位是大牛.小牛还是跟小编一样的小白,可能觉得看得不够过瘾,区 ...

  2. readonly

    readonly 关键字是可以在字段上使用的修饰符.  当字段声明包括 readonly 修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者出现在同一类的构造函数中. 示例     在此示例 ...

  3. ORACLE关闭启动的诡异错误

    在自己虚拟机搭建的ORACLE数据库环境下,折腾捣鼓做实验时,不知道什么特殊的改动.操作导致从SQL*PLUS里启动数据库实例时,报如下错误: 然后用startup nomout启动时,任然报ORA- ...

  4. java实现文件变化监控

    一. spring配置文件:application.xml <?xml version="1.0" encoding="UTF-8"?> <b ...

  5. 1. 什么是Docker?

    ##### 一.什么是Dokcer?> Docker是一个开源项目, 诞生于2013年初, 最初是dotCloud公司内部的一个业余项目. 它基于Google公司推出的Go语言实现. 项目后来加 ...

  6. css div中内容绝对居中(多行内容)

    div中的内容绝对居中(不适合IE6哦,IE6我已经不考虑了),直接看代码吧. <!DOCTYPE HTML> <html> <head> <title> ...

  7. 4412开发板搭建Uboot、Kernel和Android4.0的编译环境方法

    本文转自迅为4412开发板实战教程书籍:http://www.topeetboard.com 迅为是基于Ubuntu12.04.2平台做开发,所有的配置和编译脚本也是基于此平台,没有在其它平台上测试过 ...

  8. J2EE基础之JSP

    J2EE基础之JSP 1.JSP简介 JSP是JavaServer的缩写,是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准.在HTML文件中加入Java程序代码 ...

  9. hdu5317 RGCDQ (质因子种数+预处理)

    RGCDQ 题意:F(x)表示x的质因子的种数.给区间[L,R],求max(GCD(F(i),F(j)) (L≤i<j≤R).(2<=L < R<=1000000) 题解:可以 ...

  10. HDU3555 Bomb[数位DP]

    Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submi ...