一.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系列相关推荐

  1. vue函数如何调用其他函数?_好程序员Python教程系列之递归函数与匿名函数调用...

    好程序员Python教程系列递归函数与匿名函数调用,函数是Python技术学习中重要的一个环节,深入掌握该阶段的知识内容,对于Python技术能力的提升非常有帮助,这里就针对递归函数与匿名函数两种函数 ...

  2. 一文看懂Python collections模块的高效数据类型

    原作: George Seif, 发表于medium.com, 大江狗原创翻译, 并对原文稍作修改. Python的最大优势之一是其广泛的模块和软件包.这将Python的功能扩展到许多受欢迎的领域,包 ...

  3. 【Python茴香豆系列】之 字典合并

    [Python茴香豆系列]之 字典合并 用 Python 编程,使用不同的方法来完成同一个目标,有时候是一件很有意思的事情.这让我想起鲁迅笔下的孔乙己.孔乙己对于茴香豆的茴字的四种写法颇有研究.我不敢 ...

  4. Python: 学习系列之七:模块、PIPY及Anaconda

    系列 Python: 学习系列之一:Python能做什么 Python: 学习系列之二:基础介绍(int/float/string/range/list/tuple/dict/set) Python: ...

  5. Python学习系列(六)(模块)

    Python学习系列(六)(模块) Python学习系列(五)(文件操作及其字典) 一,模块的基本介绍 1,import引入其他标准模块 标准库:Python标准安装包里的模块. 引入模块的几种方式: ...

  6. Python学习系列(五)(文件操作及其字典)

    Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件      在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...

  7. Python编程系列教程第12讲——属性和方法

    视频地址:http://v.youku.com/v_show/id_XNTgyOTg4NjQ4.html 普及网络安全知识,推动信息技术发展. 为祖国的网络安全撑起一片蓝天,为网络安全爱好者构建一方家 ...

  8. Python编程系列教程第16讲——拷贝自身到系统目录

    分享知识,分享快乐,收获友谊,收获财富! 大家好,我是数字雨,QQ:798033502 http://itbook.taobao.com/ 今天给大家带来的教程是<Python编程系列教程第16 ...

  9. python爬取图片教程-推荐|Python 爬虫系列教程一爬取批量百度图片

    Python 爬虫系列教程一爬取批量百度图片https://blog.csdn.net/qq_40774175/article/details/81273198# -*- coding: utf-8 ...

最新文章

  1. 一个神秘URL酿大祸,差点让我背锅!
  2. 科大星云诗社动态20210415
  3. curl   liinux下http命令执行工具
  4. P3804 【模板】后缀自动机 (SAM)
  5. 约瑟夫问题(java实现)
  6. 前端学习(1389):多人管理项目9登录功能具体实现
  7. CSDN蒋涛:从人才培养和地缘优势入手,助力软件名城发展
  8. 非标自动化企业前十名_自动化输送+旋盖,竟如此简单!机械设计教程精选!...
  9. Format - Numeric
  10. python axis=1是行吗_Python:axis=0 axis=1的理解
  11. spconv编译与安装
  12. 牛客网编程题输入输出
  13. tomcat中的日志配置
  14. 怎样在微信公众平台上传文件给别人下载
  15. etc fstab 详解linux,/etc/fstab功能详解
  16. SICP 第一章的练习
  17. Altium Designer19 多层板设计教程
  18. 数学-向量公式总结和一些公式证明
  19. android中的长度单位介绍(dp,sp,px,in,pt,mm)
  20. VPN 虚拟专用网络隧道

热门文章

  1. 初级Web前端工程师是什么?初级Web前端工程师的技术体系有哪些?
  2. 鸿蒙一号指纹锁,【诉说实情】火车头战狼一号家用防盗门指纹锁怎么样?新手必看内情...
  3. html对话框跳转页面,html页面的简单对话框(alert, confirm, prompt)
  4. linux kde中文输入法,linux 下的中文输入法是不是只能在KDE下啊?Gnome下有吗?名字?怎么装?...
  5. clock函数返回精度都是上万的_Excel常用函数每日一讲 VLOOKUP函数
  6. 鸿蒙有没有手机管家,鸿蒙2.0手机快了,华为EMUI 11透露关键信息
  7. SpringMVC用注解写第一个程序HelloSpringMVC
  8. HDU-1874畅通工程续( 最短路)
  9. 机器学习——特征工程之特征选择
  10. 【Deep Learning 四】课程一(Neural Networks and Deep Learning),第三周(Shallow neural networks)答案