模块:collections,Python中的扩展数据类型
时间:2019-08-28
本文章向大家介绍模块:collections,Python中的扩展数据类型,主要包括模块:collections,Python中的扩展数据类型使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
namedtuple:生成一个可以使用名字来访问的tuple
from collections import namedtuple point = namedtuple('point',['x','y','z','r']) p = point(1,2,3,4) print(p.z) print(p.x) print(p.y) print(p.r) print(p) 打印: 3 1 2 4 point(x=1, y=2, z=3, r=4)
deque:双队列 一个可迭代的 取一个少一个 只能从最前面或者最后面取,可以从最前面、最后面添加,可以插队添加
from collections import deque lis = deque([1,2,3]) lis.append(0) #从最前面添加一个元素 lis.appendleft(4) #从最后面添加一个元素 print(lis.pop())#取出最前面的一个元素 print(lis.popleft())#取出最后面的一个元素 lis.insert(3,'a')#指定位置添加一个元素 print(lis) print('__iter__' in dir(deque))#可迭代的 for i in lis: print(i) 打印: 0 4 deque([1, 2, 3, 'a']) True 1 2 3 a
counter:计算次数 参数为可迭代的 返回元素出现的次数
from collections import Counter number = Counter([1,1,1,2,1,2,1,3,3,4,5,1,4]) print(number) #打印: Counter({1: 6, 2: 2, 3: 2, 4: 2, 5: 1})
defaultdict:带默认值的字典 使用正常下的字典时时,如果引用的Key不存在,就会抛出KeyError。defaultdict可以设置默认值,如果key不存在,会给他一个设定的默认值
from collections import defaultdict lis = defaultdict(lambda :'默认空的值') lis['key'] print(lis) #打印: defaultdict(<function <lambda> at 0x0000026D959C8048>, {'key': '默认空的值'}) # 例子:有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。 from collections import defaultdict lis = [11,22,33,44,55,66,77,88,99,90] new_lis = defaultdict(list) for i in lis: if i > 66: new_lis['k1'].append(i) else: new_lis['k2'].append(i) print(new_lis) #打印: defaultdict(<class 'list'>, {'k2': [11, 22, 33, 44, 55, 66], 'k1': [77, 88, 99, 90]})
OrderedDict:有序字典
from collections import OrderedDict dic1 ={('a', 1), ('b', 2), ('c', 3), ('e', 4), ('d', 5)} print(dic1)#无序的 dic = OrderedDict() dic['a'] = 1 dic['b'] = 2 dic['c'] = 3 dic['e'] = 4 dic['d'] = 5 print(dic) #有序的 Key会按照插入的顺序排列,不是Key本身排序 #打印: {('e', 4), ('a', 1), ('d', 5), ('b', 2), ('c', 3)} OrderedDict([('a', 1), ('b', 2), ('c', 3), ('e', 4), ('d', 5)])
原文地址:https://www.cnblogs.com/aizhinong/p/11424641.html
- Golang泛型编程初体验
- 厚土Go学习笔记 | 14. switch 的条件写的有点灵活,不过风格还是go的一贯风格
- Go语言·我的性能我做主
- 47. 访问MySql数据库实现增删改查 | 厚土Go学习笔记
- system表空间不足的问题分析(二) (r8笔记第5天)
- golang基于redis lua封装的优先级去重队列
- python基础知识——内置数据结构(元组)
- python基础知识——控制语句
- python基础知识——基本语法
- 11g主库归档自动删除的小问题分析 (r8笔记第1天)
- JavaWeb02-CSS,JS(Java真正的全栈开发)
- 数据处理——One-Hot Encoding
- JavaWeb20-文件上传;下载(Java真正的全栈开发)
- 转--每周一个GoLang设计模式之组合模式
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法