八、collection系列-----计数器、有序字典、默认字典、可命名元组、双向队列、单向队列一.计数器(对字典的扩展)
>>> import collections
>>> c = collections.Counter("rewqfsdvcxzfgafrwqerwgfdjg;ldskj")
>>> c
Counter({'f': 4, 'r': 3, 'g': 3, 'w': 3, 'd': 3, 'q': 2, 'e': 2, 's': 2, 'j': 2, 'z': 1, 'k': 1, 'x': 1, ';': 1, 'c': 1, 'a': 1, 'l': 1, 'v': 1}) ======》它告诉了你f出现了4次,r出现了3次。。。。。。。
>>> c.most_common()
[('f', )]
>>> c.most_common()
[('f', ), ('r', )]
>>> c.most_common()
[('f', ), ('r', ), ('g', )]
>>> c.most_common()
[('f', ), ('r', ), ('g', ), ('w', )]
>>> c.most_common()
[('f', ), ('r', ), ('g', ), ('w', ), ('d', )]
>>> c.most_common()
[('f', ), ('r', ), ('g', ), ('w', ), ('d', ), ('q', )]
>>> c1 = collections.Counter('aabc')
>>> c2 = collections.Counter('aac')
>>> c1
Counter({'a': , 'c': , 'b': })
>>> c2
Counter({'a': , 'c': })
>>> c1.update(c2)
>>> c1
Counter({'a': , 'c': , 'b': })
>>> c1
Counter({'a': , 'c': , 'b': })
>>> c2
Counter({'a': , 'c': })
>>> c1.subtract(c2)
>>> c1
Counter({'a': , 'c': , 'b': })
>>> c1
Counter({'a': , 'c': , 'b': })
>>> for item in c1.elements():print (item) c
c
a
a
a
a
b
o1 = collections.OrderedDict()
o1['k1'] =
o1['k2'] =
o1['k3'] =
>>> o1
OrderedDict([('k1', ), ('k2', ), ('k3', )])
collections.defaultdict
dic = {}
if 'k1' in dic.keys():
dic['k1'].append()
else:
dic['k1'] = [,]
>>> dic = collections.defaultdict(list)
>>> dic
defaultdict(<class 'list'>, {})
>>> dic['k1'].append()
>>> dic
defaultdict(<class 'list'>, {'k1': []})
(,)
,4是我们的位置上的某个点,分别代表x轴和y轴,但是,这样的表述方法只有我们知道,别人不知道,所以需要给元组命名为x=,y=,z=........可命名元组的使用步骤为: .创建类
Mytuple = collections.namedtuple('Mytuple',['x','y']) 这个命令用于创建一个扩展tuple的类,类名叫Mytuple .使用类创建对象
我们在创建元组的时候是这样的:
t1 = (,)<====================>t1 = tuple(,) 你执行前面一个实际上Python的内部机制还是回去调后面这种方式,现在我们自己定义了一个元组扩展的类,可以看看 >>>t2 = Mytuple(,) 发现它返回了一个(x=,y=)的元组
>>>t2
Mytuple(x=, y=) .使用对象 >>> t2.x 现在我们就可以使用t2.x和t2.y分别取访问这两个元素了 >>> t2.y 我们自己创建的类也是有方法的,通过
dir(Mytuple)或者help(Mytuple)可以查看到 >>> help(Mytuple)
Help on class Mytuple in module __main__:
class Mytuple(builtins.tuple) =====>这句话表示Mytuple是通过tuple扩展的类,即tuple是Mytuple的父类,这个 也叫作继承,子类继承父类,表示它可以继承它的父类里的所有东西供自己使用
Mytuple(x, y) >>> dir(Mytuple)
['__add__', '__class__', '__contains__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__module__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '_asdict', '_fields', '_make', '_replace', '_source', 'count', 'index', 'x', 'y']
>>> help(collections.deque) >>> q = collections.deque() ======>创建了一个空的双向队列
>>> q.append() ======>append了几个值
>>> q.append()
>>> q.append()
>>> q.append()
>>> q.append()
>>> q
deque([, , , , ])
>>> import queue
>>> dir(queue)
['Empty', 'Full', 'LifoQueue', 'PriorityQueue', 'Queue', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'deque', 'heappop', 'heappush', 'threading', 'time'] 创建一个单向队列
>>> q = queue.Queue() =======>10代表这个单向队列里面最多放10条数据
>>> q
<queue.Queue object at 0x02AC2E50>
往里加数据:
>>> q.put()
>>> q.put()
>>> q.put()
往外拿数据:
>>> q.get() >>> q.get() >>> q.get() >>> q.get() =====>当里面没有数据了,光标就停在那里等待,直到里面有了,我就可以拿到了
八、collection系列-----计数器、有序字典、默认字典、可命名元组、双向队列、单向队列一.计数器(对字典的扩展)的更多相关文章
- python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列
1.计数器(counter) Counter是对字典类型的补充,用于追踪值的出现次数. ps:具备字典的所有功能 + 自己的功能 Counter 我们从中挑选一些相对常用的方法来举例: 在上面的例子 ...
- python-Day3-set 集合-counter计数器-默认字典(defaultdict) -可命名元组(namedtuple)-有序字典(orderedDict)-双向队列(deque)--Queue单项队列--深浅拷贝---函数参数
上节内容回顾:C语言为什么比起他语言块,因为C 会把代码变异成机器码Pyhton 的 .pyc文件是什么python 把.py文件编译成的.pyc文件是Python的字节码, 字符串本质是 字符数组, ...
- Python_Day_05 计数器(counter),有序字典(OrderDict),默认字典(defaultdict),可命名元祖(namedtuple),双向队列(deque),单项队列(deuqe.Queue)
Counter(计数器) 是一个字典的子类,存储形式同样为字典,其中存储的键为字典的元素,值为元素出现的次数,在使用之前我们需要先导入文件 import collections 初始化一个计数器 im ...
- 计数器(counter),有序字典(OrderDict),默认字典(defaultdict),可命名元祖(namedtuple),双向队列(deque),单项队列(deuqe.Queue)
Python_Day_05 计数器(counter),有序字典(OrderDict),默认字典(defaultdict),可命名元祖(namedtuple),双向队列(deque),单项队列(deuq ...
- Python 从零学起(纯基础) 笔记 之 collection系列
Collection系列 1. 计数器(Counter) Counter是对字典类型的补充,用于追踪值的出现次数 ps 具备字典所有功能 + 自己的功能 Counter import col ...
- 3.python基础补充(集合,collection系列,深浅拷贝)
一.集合 1.集合(set): 把不同的元素组成一起形成集合,是python基本的数据类型.集合元素(set elements):组成集合的成员 python的set和其他语言类似, 是一个无序不重复 ...
- python开发学习-day03(set集合、collection系列 、深浅拷贝、函数)
s12-20160116-day03 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- python collection系列
collection系列 不常用功能,需要进行模块功能导入: import collection Counter 常用方法测试: #!/usr/local/env python3 ''' Author ...
- Python中list(列表)、dict(字典)、tuple(元组)、set(集合)详细介绍
更新时间:2019.08.10 更新内容: "2.14加入sorted()函数" "2.3"加入一种删除元素的方法 "二.字典"新增1.5, ...
随机推荐
- Task异常捕获的几种方式
在调用Task的Wait()方法或Result属性处会抛出Task中的异常. 但是如果没有返回结果,或者不想调用Wait()方法,该怎么获取异常呢? 可以使用ContinueWith()方法 var ...
- 几个简单js,普通写法和高逼格写法比较
1. 取数组中的数据,并对空值设置默认值: 常规写法: let arr = [0, 1, null, '', 'abc']; let newArr = []; arr.forEach((item, i ...
- CF1178F Short/Long Colorful Strip(DP)
说起来,这题好像也不难-- 先考虑 F1 怎么做. 既然别的方法都不行不如试试\(f_{i,j}\) 表示在刚刚准备开始涂 \([i,j]\) 中最小编号的颜色之前,整个区间是同色的,且最后能做到 \ ...
- Web协议详解与抓包实战:HTTP1协议-如何传递 IP 地址?(6)
一.HTTP消息在服务器端的路由 Host 头部 规范与实现间是有差距的 二.代理服务器转发消息时的相关头部 1.Host 头部与消息的路由 2.客户端与源服务器间存在多个代理 三.如何传递 IP 地 ...
- [LeetCode] 347. Top K Frequent Elements 前K个高频元素
Given a non-empty array of integers, return the k most frequent elements. Example 1: Input: nums = [ ...
- javaSript 处理电脑和浏览器pc端缩放对页面的影响
由于用户的个人习惯或其他原因,可能会调整到电脑上的缩放比例或者浏览器的缩放比例,如果访问页面会看起来比较不好看, 电脑上的缩放: 浏览器上的缩放: 解决方法: function detectZoom( ...
- Magisk —— 安卓新一代的第三方拓展,systemless模式
Magisk由宝岛台湾学生 topjohnwu 开发, XDA主贴:https://forum.xda-developers.com/apps/magisk 使用方法:第三方rec刷入zip 介绍: ...
- intelliJ 社区版-找不到 plugins选项
丢人了... 今天 在intelliJ社区版上面找不到 plugins 选项了, 其实是有的,我看的是项目的 settings 当然没有了, (1)如果直接点击File==> 这样就是没有plu ...
- mac os 使用 from scipy.misc import imread ImportError: cannot import name 'imread'
mac os 使用 from scipy.misc import imread ImportError: cannot import name 'imread' 问题1: 我原先安装了 pillow ...
- AngularJS入门Demo
1 :表达式 <html> <head> <title>入门小Demo-1</title> <script src="angular.m ...