python常用数据结构模块--collections
import collections
'''
python常用数据结构模块--collections
collections是日常工作中的重点、高频模块,常用类型有:
计数器(Counter)
双向队列(deque) 参考源码 就是list
默认字典(defaultdict)
有序字典(OrderedDict)
可命名元组(namedtuple) #常用于定义一个类,该类只有一些属性,没有方法
'''
# namedtuple 用于定义一个类,该类只有一些属性,没有方法
People = collections.namedtuple("Peole", ["name", "age"]) people = People("W", 18)
print(people)
"""
"C:\Program Files (x86)\python3.8\python.exe" D:/xiaoxiao/wzg/untitled/collection模块学习.py
Peole(name='W', age=18)
Process finished with exit code 0
"""
# OrderedDict 有序字典 可实现按key或者value排序 print("正经的字典,")
d = {}
d['a'] = 'A'
d['b'] = 'B'
d['c'] = 'C'
for k, v in d.items():
print(k, v)
print("不正经的字典(我有序了,哎,就是玩儿)")
d1 = collections.OrderedDict()
d1['a'] = 'A'
d1['b'] = 'B'
d1['c'] = 'C'
d1['1'] = '1'
d1['2'] = '2'
for k, v in d1.items():
print(k, v)
"""
输出:
正经的字典, 无序
a A
b B
c C
不正经的字典(我有序了,哎,就是玩儿)
a A
b B
c C
1 1
2 2
""" print("正经的字典,")
d2 = {}
d2['a'] = 'A'
d2['b'] = 'B'
d2['c'] = 'C' d3 = {}
d3['c'] = 'C'
d3['a'] = 'A'
d3['b'] = 'B' print("不正经的字典(我有序了,哎,就是玩儿)")
d4 = collections.OrderedDict()
d4['a'] = 'A'
d4['b'] = 'B'
d4['c'] = 'C' d5 = collections.OrderedDict()
d5['c'] = 'C'
d5['a'] = 'A'
d5['b'] = 'B' print(d == d2)
print(d4 == d5)
"""
输出:
True
False
结论:有序的字典(OrderedDict):顺序不同的,元素相同,对象也是不同的
"""
dd = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}
#按key排序
kd = collections.OrderedDict(sorted(dd.items(), key=lambda item: item[0]))
print(kd)
#按照value排序
vd = collections.OrderedDict(sorted(dd.items(),key=lambda item:item[1]))
print(vd)
'''
输出:
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)])
'''
#Counter 参考源码样例
python常用数据结构模块--collections的更多相关文章
- Python常用数据结构之collections模块
Python数据结构常用模块:collections.heapq.operator.itertools collections collections是日常工作中的重点.高频模块,常用类型由: 计数器 ...
- python 常用的模块(collections)转
collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple 我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: >>> ...
- Python内建模块--collections
python内建模块--collections collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple 我们知道tuple可以表示不变集合,例如,一个点 ...
- 第四章:4.0 python常用的模块
1.模块.包和相关语法 使用模块好处: 最大的好处是大大提高了代码的可维护性.其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.我们在编写程序的时候,也经常引用其他模块,包括Pyt ...
- python 常用的模块
面试的过程中经常被问到使用过那些python模块,然后我大脑就出现了一片空白各种模块一顿说,其实一点顺序也没有然后给面试官造成的印象就是自己是否真实的用到这些模块,所以总结下自己实际工作中常用的模块: ...
- python常用数据结构讲解
一:序列 在数学上,序列是被排成一排的对象,而在python中,序列是最基本的数据结构.它的主要特征为拥有索引,每个索引的元素是可迭代对象.都可以进行索引,切片,加,乘,检查成员等操作.在py ...
- Python常用数据结构之heapq模块
Python数据结构常用模块:collections.heapq.operator.itertools heapq 堆是一种特殊的树形结构,通常我们所说的堆的数据结构指的是完全二叉树,并且根节点的值小 ...
- python 常用第三方模块
除了内建的模块外,Python还有大量的第三方模块. 基本上,所有的第三方模块都会在https://pypi.python.org/pypi上注册,只要找到对应的模块名字,即可用pip安装. 本章介绍 ...
- python常用小模块使用汇总
在写代码过程中常用到一些好用的小模块,现整理汇总一下: 1.获取当前的文件名和目录名,并添到系统环境变量中. file = os.path.abspath(__file__) ...
- Python 常用系统模块整理
Python中的常用的系统模块中部分函数等的整理 random: 随机数 sys: 系统相关 os: 系统相关的 subprocess: 执行新的进程 multiprocessing: 进程相关 th ...
随机推荐
- 队列——queue的用法(及洛谷B3616)
队列的概念 在说队列之前,先回忆一下栈是什么,我们一般说栈是一个先进后出的数据结构,而队列就是先进先出的数据结构. 队列是定在表的一端进行插入,表的另一端进行删除. 通常,我们称进数据的一端为队尾,出 ...
- JZOJ 4752.字符串合成
\(\text{Problem}\) \(\text{Solution}\) 最优解一定是一个回文子串的最优构造加上剩下的逐个填入 考虑用回文树建出所有的回文串,然后 \(dp\) 求回文子串最优的构 ...
- JZOJ 2474. 【GDKOI 2021普及组DAY2】我的世界
题解 这题很明显发现一个点到另一个点,必然最多只有一个进入下界的点和一个出来的点 分类讨论入点和出点的位置 要么都在 \(u->lca\) 或都在 \(lca->v\) 或分别有一个 那就 ...
- C语言初学习
首先我们先看一下什么是编译型语言和解释型语言: 解释:借助一个程序,那个程序能试图理解你的程序,然后按照你的要求执行 编译:借助一个程序,就像一个翻译,把你的程序翻译成计算机真正能懂得语言--机器语言 ...
- 【django-vue】封装logger 封装全局异常 封装response 数据库配置 用户表继承AbstractUser配置
目录 上节回顾 python运行流程 项目目录调整(重要) 关于环境变量的问题 今日内容 1 django后端配置之封装logger 2 后端配置之封装全局异常 补充说明 3 后端配置之二次封装res ...
- angular 基本操作
1.新建项目(带路由) ng new demo --routing 2.新建组件 统一放到components目录下(文件夹会自动创建) ng g component components/home ...
- 运维排查篇 | Linux 连接跟踪表满了怎么处理
nf_conntrack (在老版本的 Linux 内核中叫 ip_conntrack )是一个内核模块,用于跟踪一个网络连接的状态 一旦内核 netfilter 模块 conntrack 相关参数配 ...
- Linux CAN (CAN_J1939)框架及调用流程
module_init(j1939_module_init);内核编译CAN_J1939模块 在函数j1939_module_init(void)中 ret = register_netdevice_ ...
- FastAPI中声明参数为必需的三种方式
前提 有时候我们定义一些参数的时候,需要声明这个参数为必需,请求者必须传递该参数.FatstAPI中声明参数为必需的方式有三种,分别为:不设默认值. "..." 和 " ...
- vue 基础 v-text v-html v-model v-cloak v-bind
v-text 纯文本绑定 v-html 会解析html标签 <p v-html="rawHtml"></p> var a=new Vue({ el:&q ...