Python collections系列
一.counter 计数器
#!/usr/bin/evn python3 import collections'''#Counter 是对字典功能的补充,用于统计值出现的次数obj = collections系列.Counter('adsfnlaksfioewnxjioaieraksdflkj')print(obj) #most_common 用于统计指定多少个值出现的次数result = obj.most_common(4)print(result) #elements 其实就是原生值for k in obj.elements(): print(k) #obj 其实是被计数器处理过的值for k,v in obj.items(): print(k,v) ''' #update 更新计数器(增加)obj = collections.Counter([11,22,33,11,33,44])#obj.update(['rain','andy',11])print(obj) #subtract 删除obj.subtract(['rain','andy',11])print(obj) 二.defaultdict默认字典
#!/usr/bin/env python3from collections import defaultdict'''#defaultdict是对字典的类型的补充,他默认给字典的值设置了一个类型。#设置类型后就可以是用该类型的方法 #实例#有如下值集合 [11,22,33,44,55,66,77,88,99,100...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。即: {'k1': 大于66 , 'k2': 小于66} #默认字典实现方式values = [11,22,33,44,55,66,77,88,99,100] dic = defaultdict(list)for k in values: if k < 66: dic['k1'].append(k) else: dic['k2'].append(k) print(dic)''' '''#python3.0 后没有has_key方法#原生字典实现方式values2 = [11, 22, 33,44,55,66,77,88,99,100] my_dict = {} for k in values2: if k>66: if my_dict.has_key('k1'): my_dict['k1'].append(k) else: my_dict['k1'] = [k] else: if my_dict.has_key('k2'): my_dict['k2'].append(k) else: my_dict['k2'] = [k]print(my_dict)'''
三.OrderedDict有序字典
#!/usr/bin/env python3from collections import defaultdict'''#defaultdict是对字典的类型的补充,他默认给字典的值设置了一个类型。#设置类型后就可以是用该类型的方法 #实例#有如下值集合 [11,22,33,44,55,66,77,88,99,100...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。即: {'k1': 大于66 , 'k2': 小于66} #默认字典实现方式values = [11,22,33,44,55,66,77,88,99,100] dic = defaultdict(list)for k in values: if k < 66: dic['k1'].append(k) else: dic['k2'].append(k) print(dic)''' '''#python3.0 后没有has_key方法#原生字典实现方式values2 = [11, 22, 33,44,55,66,77,88,99,100] my_dict = {} for k in values2: if k>66: if my_dict.has_key('k1'): my_dict['k1'].append(k) else: my_dict['k1'] = [k] else: if my_dict.has_key('k2'): my_dict['k2'].append(k) else: my_dict['k2'] = [k]print(my_dict)'''
四.deque双向队列
#!/usr/bin/env python3import collections #deque: 一个线程安全的双向队列;可以两边存两边取 d = collections.deque() #append 从右边开始插入单个元素d.append('andy')d.append('rain')print(d) #appendleft 从左边插入单个元素d.appendleft('left')d.appendleft('hello')print(d) #extend 从右边开始插入多个元素d.extend([11,22,33,11,22,33,44])print(d) #extendleftd.extendleft([55,66,77,88,55,66,77,88])print(d) #clear 清空队列#d.clear()#print(d) #count 统计队列中的某个元素有多少个r = d.count(11)print(r) #rotate 把队列中的尾部元素放到头部,需指定多少个元素放到头部d.rotate(2)print(d) #pop 从队列的右边删除一个元素,并赋值给你对象a = d.pop()print(d)print(a) #popleft从队列的左边删除一个元素,并赋值给你对象a = d.popleft()print(d)print(a) #remove 删除队列中指定的元素,默认是删除从左边开始的第一个, d.remove(77)print('a')print(d) #reverse队列元素反转d.reverse()print(d)
五.queue单向队列
#!/usr/bin/env python3 import queue #单向队列只能一边存、一边取 d = queue.Queue()d.put('andy')d.put('baby')d.put('rain')d.put('ok')print(d.qsize()) #查看队列中有多少个元素print(d.get()) #获取队列中的元素
六.nametuple可命名元组
#!/usr/bin/env python3import collections #根据nametuple可以创建一个包含tuple所有功能以及其他功能的类型。#'x','y','z'相当于值11、22、33的别名#可命名元组需要先创建一个类才能使用 MytupleClass = collections.namedtuple('mytupleclass',['x','y','z']) #创建MytupleClass这个类obj = MytupleClass(11,22,33)print(obj.x)print(obj.y)print(obj.z)
转载于:https://www.cnblogs.com/RainBower/p/5183218.html
Python collections系列相关推荐
- vue函数如何调用其他函数?_好程序员Python教程系列之递归函数与匿名函数调用...
好程序员Python教程系列递归函数与匿名函数调用,函数是Python技术学习中重要的一个环节,深入掌握该阶段的知识内容,对于Python技术能力的提升非常有帮助,这里就针对递归函数与匿名函数两种函数 ...
- 一文看懂Python collections模块的高效数据类型
原作: George Seif, 发表于medium.com, 大江狗原创翻译, 并对原文稍作修改. Python的最大优势之一是其广泛的模块和软件包.这将Python的功能扩展到许多受欢迎的领域,包 ...
- 【Python茴香豆系列】之 字典合并
[Python茴香豆系列]之 字典合并 用 Python 编程,使用不同的方法来完成同一个目标,有时候是一件很有意思的事情.这让我想起鲁迅笔下的孔乙己.孔乙己对于茴香豆的茴字的四种写法颇有研究.我不敢 ...
- Python: 学习系列之七:模块、PIPY及Anaconda
系列 Python: 学习系列之一:Python能做什么 Python: 学习系列之二:基础介绍(int/float/string/range/list/tuple/dict/set) Python: ...
- Python学习系列(六)(模块)
Python学习系列(六)(模块) Python学习系列(五)(文件操作及其字典) 一,模块的基本介绍 1,import引入其他标准模块 标准库:Python标准安装包里的模块. 引入模块的几种方式: ...
- Python学习系列(五)(文件操作及其字典)
Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件 在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...
- Python编程系列教程第12讲——属性和方法
视频地址:http://v.youku.com/v_show/id_XNTgyOTg4NjQ4.html 普及网络安全知识,推动信息技术发展. 为祖国的网络安全撑起一片蓝天,为网络安全爱好者构建一方家 ...
- Python编程系列教程第16讲——拷贝自身到系统目录
分享知识,分享快乐,收获友谊,收获财富! 大家好,我是数字雨,QQ:798033502 http://itbook.taobao.com/ 今天给大家带来的教程是<Python编程系列教程第16 ...
- python爬取图片教程-推荐|Python 爬虫系列教程一爬取批量百度图片
Python 爬虫系列教程一爬取批量百度图片https://blog.csdn.net/qq_40774175/article/details/81273198# -*- coding: utf-8 ...
最新文章
- 一个神秘URL酿大祸,差点让我背锅!
- 科大星云诗社动态20210415
- curl liinux下http命令执行工具
- P3804 【模板】后缀自动机 (SAM)
- 约瑟夫问题(java实现)
- 前端学习(1389):多人管理项目9登录功能具体实现
- CSDN蒋涛:从人才培养和地缘优势入手,助力软件名城发展
- 非标自动化企业前十名_自动化输送+旋盖,竟如此简单!机械设计教程精选!...
- Format - Numeric
- python axis=1是行吗_Python:axis=0 axis=1的理解
- spconv编译与安装
- 牛客网编程题输入输出
- tomcat中的日志配置
- 怎样在微信公众平台上传文件给别人下载
- etc fstab 详解linux,/etc/fstab功能详解
- SICP 第一章的练习
- Altium Designer19 多层板设计教程
- 数学-向量公式总结和一些公式证明
- android中的长度单位介绍(dp,sp,px,in,pt,mm)
- VPN 虚拟专用网络隧道
热门文章
- 初级Web前端工程师是什么?初级Web前端工程师的技术体系有哪些?
- 鸿蒙一号指纹锁,【诉说实情】火车头战狼一号家用防盗门指纹锁怎么样?新手必看内情...
- html对话框跳转页面,html页面的简单对话框(alert, confirm, prompt)
- linux kde中文输入法,linux 下的中文输入法是不是只能在KDE下啊?Gnome下有吗?名字?怎么装?...
- clock函数返回精度都是上万的_Excel常用函数每日一讲 VLOOKUP函数
- 鸿蒙有没有手机管家,鸿蒙2.0手机快了,华为EMUI 11透露关键信息
- SpringMVC用注解写第一个程序HelloSpringMVC
- HDU-1874畅通工程续( 最短路)
- 机器学习——特征工程之特征选择
- 【Deep Learning 四】课程一(Neural Networks and Deep Learning),第三周(Shallow neural networks)答案