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. ObjectAnimator属性动画应用demo

    感谢慕课网--eclipse_xu 布局文件:activity_main.xml <FrameLayout xmlns:android="http://schemas.android. ...

  2. 【代码笔记】iOS-通过颜色来生成一个纯色图片

    一,效果图. 二,代码. RootViewController.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additional se ...

  3. iOS 数字滚动 类似于老 - 虎- 机的效果

    效果图 具体实现代码如下 ZCWScrollNumView.h文件 #import <UIKit/UIKit.h> typedef enum { ZCWScrollNumAnimation ...

  4. ios webview自适应实际内容高度4种方法

    有的时候会碰见类似的苦逼需求, webview自适应实际内容高度 下面有四种方法供使用 方法1:获取webview中scrovllview的contentsize进行设置   1 2 3 4 5 6 ...

  5. 软件工程--界面UI 的原型设计

    经过今天的讨论, 我们组初步给出了设计方案. 安装了一晚上的 mockupBuilder 终于绘制了几份界面的原型图, 这里需要吐槽下 mockupBuilder, 这个软件很好用, 不过网页版和单机 ...

  6. asp.net signalR 专题—— 第三篇 如何从外部线程访问 PersistentConnection

    在前面的两篇文章中,我们讲到的都是如何将消息从server推向client,又或者是client再推向server,貌似这样的逻辑没什么异常,但是放在真实 的环境中,你会很快发现有一个新需求,如何根据 ...

  7. 关于Java中枚举Enum的深入剖析

    在编程语言中我们,都会接触到枚举类型,通常我们进行有穷的列举来实现一些限定.Java也不例外.Java中的枚举类型为Enum,本文将对枚举进行一些比较深入的剖析. 什么是Enum Enum是自Java ...

  8. docker核心原理

    容器概念. docker是一种容器,应用沙箱机制实现虚拟化.能在一台宿主机里面独立多个虚拟环境,互不影响.在这个容器里面可以运行着我饿们的业务,输入输出.可以和宿主机交互. 使用方法. 拉取镜像 do ...

  9. Android应用源码基于安卓的个人隐私监控项目

    本系统借鉴了现有安全软件的优点,设计了权限访问监控.流量监控.应用程序危险度监控和签名验证四个功能模块,同时针对现有安全软件的不足之处,对系统进行改进,让权限访问.流量监控.危险值等以图形化的方式呈现 ...

  10. pacemaker+corosync/heartbeat对比及资源代理RA脚本

    一.Pacemaker概念 (1)Pacemaker(心脏起搏器),是一个高可用的群集资源管理器.它实现最大可用性资源管理的节点和资源级故障检测和恢复,通过使用首选集群基础设施(Corosync或He ...