Python 从零学起(纯基础) 笔记 之 collection系列

时间:2021-07-14 11:33:24

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. &lbrack;Python&rsqb; 文科生零基础学编程系列二——数据类型、变量、常量的基础概念

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

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

    上一篇:[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. 【液晶模块系列基础视频】3&period;3fatfs接口函数的使用3

    ============================= 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:ht ...

  2. DI 之 3&period;4 Bean的作用域(捌)

    3.4  Bean的作用域 什么是作用域呢?即"scope",在面向对象程序设计中一般指对象或变量之间的可见范围.而在Spring容器中是指其创建的Bean对象相对于其他Bean对 ...

  3. tomcat log

    $TOMCAT_HOME$/logs/ .out tomcat 启动后的输出日志 ,主要用于输出一些常规的东西,打印的info日志也会在这里输出. 修改tomcat生成的日志位置 在开发/测试环境,日 ...

  4. ViewPager欢迎页

    布局  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:to ...

  5. USACO 3&period;2 Magic Squares

    Magic SquaresIOI'96 Following the success of the magic cube, Mr. Rubik invented its planar version, ...

  6. 【翻译】Open ID Connect---OIDC 是什么东西?

    Welcome to OpenID Connect What is OpenID Connect? OpenID Connect 1.0 is a simple identity layer on t ...

  7. 三大主流软件负载均衡器对比&lpar;LVS VS Nginx VS Haproxy&rpar;

    LVS:1.抗负载能力强.抗负载能力强.性能高,能达到F5硬件的60%:对内存和cpu资源消耗比较低2.工作在网络4层,通过vrrp协议转发(仅作分发之用),具体的流量由linux内核处理,因此没有流 ...

  8. 编写高质量代码&colon;改善Java程序的151个建议 --&lbrack;36~51&rsqb;

    编写高质量代码:改善Java程序的151个建议 --[36~51] 工具类不可实例化 工具类的方法和属性都是静态的,不需要生成实例即可访 问,而且JDK也做了很好的处理,由于不希望被初始化,于是就设置 ...

  9. Apache的项目列表

    这里是Apache的项目列表,Apache Http Server也在这里 https://projects.apache.org/projects.html?name

  10. Codeforces Round &num;514 &lpar;Div&period; 2&rpar; E&period; Split the Tree(倍增&plus;贪心)

    https://codeforces.com/contest/1059/problem/E 题意 给出一棵树,每个点都有一个权值,要求你找出最少条链,保证每个点都属于一条链,而且每条链不超过L个点 和 ...