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的更多相关文章

  1. Python常用数据结构之collections模块

    Python数据结构常用模块:collections.heapq.operator.itertools collections collections是日常工作中的重点.高频模块,常用类型由: 计数器 ...

  2. python 常用的模块(collections)转

    collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple 我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: >>> ...

  3. Python内建模块--collections

    python内建模块--collections collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple 我们知道tuple可以表示不变集合,例如,一个点 ...

  4. 第四章:4.0 python常用的模块

    1.模块.包和相关语法 使用模块好处: 最大的好处是大大提高了代码的可维护性.其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.我们在编写程序的时候,也经常引用其他模块,包括Pyt ...

  5. python 常用的模块

    面试的过程中经常被问到使用过那些python模块,然后我大脑就出现了一片空白各种模块一顿说,其实一点顺序也没有然后给面试官造成的印象就是自己是否真实的用到这些模块,所以总结下自己实际工作中常用的模块: ...

  6. python常用数据结构讲解

    一:序列     在数学上,序列是被排成一排的对象,而在python中,序列是最基本的数据结构.它的主要特征为拥有索引,每个索引的元素是可迭代对象.都可以进行索引,切片,加,乘,检查成员等操作.在py ...

  7. Python常用数据结构之heapq模块

    Python数据结构常用模块:collections.heapq.operator.itertools heapq 堆是一种特殊的树形结构,通常我们所说的堆的数据结构指的是完全二叉树,并且根节点的值小 ...

  8. python 常用第三方模块

    除了内建的模块外,Python还有大量的第三方模块. 基本上,所有的第三方模块都会在https://pypi.python.org/pypi上注册,只要找到对应的模块名字,即可用pip安装. 本章介绍 ...

  9. python常用小模块使用汇总

    在写代码过程中常用到一些好用的小模块,现整理汇总一下: 1.获取当前的文件名和目录名,并添到系统环境变量中. file = os.path.abspath(__file__)             ...

  10. Python 常用系统模块整理

    Python中的常用的系统模块中部分函数等的整理 random: 随机数 sys: 系统相关 os: 系统相关的 subprocess: 执行新的进程 multiprocessing: 进程相关 th ...

随机推荐

  1. 【KAWAKO】speechmetrics-语音方面评价指标库的安装与使用

    目录 简介 安装 将工程以压缩包形式下载到本地 把压缩包传到服务器(你想部署的地方)上进行解压 用编辑器打开setup.py进行修改 在工程目录下进行安装 测试 简介 speechmetrics库提供 ...

  2. JZOJ 3889

    \(\text{Problem}\) 小H是个善于思考的学生,她正在思考一个有关序列的问题. 她的面前浮现出了一个长度为 \(n\) 的序列 \({ai}\),她想找出两个非空的集合 \(S.T\). ...

  3. ubuntu 一键安装lnmp环境

    转载csdn: ubuntu 一键安装lnmp环境_手艺人小在的博客-CSDN博客 注意:采用编译安装方法,花费时间较长,这个只有稳定版的,没有高版本的. 转载vpsgo: Linux上一键安装LNM ...

  4. honoka和格点三角形

    题目: honoka最近在研究三角形计数问题.她认为,满足以下三个条件的三角形是"好三角形".1.三角形的三个顶点均为格点,即横坐标和纵坐标均为整数.2.三角形的面积为 .3.三角 ...

  5. Jetpack Compose学习(11)——Navigation页面导航的使用

    原文:Jetpack Compose学习(11)--Navigation页面导航的使用 - Stars-One的杂货小窝 在Android原生的View开发中的,也是有Navigation,原生我之后 ...

  6. RabbitMQ基础和解疑

    一.基础概念 1. Producer:生产者,就是投递消息的一方 消息一般可以包含2个部分:消息体和标签(Label).消息体也可以称之为payload,在实际应用中,消息体一般是一个带有业务逻辑结构 ...

  7. Switchquery:移动端秒级配置触达平台

    作者:京东零售 胡本奎 一 背景 随着移动互联网的快速发展,为满足各类用户及人群的体验需求,移动端的开发者们开发了丰富多彩的体验与功能.同时对于快速控制各类功能的切换.灰度,降级等能力的要求也越来越高 ...

  8. angular中echart的使用

    <div class="ringlike-chart" echarts [options]="options" (chartInit)="onC ...

  9. No.1.9

    项目样式补充 精灵图(场景:项目中将多张小图片,合并成一张大图片,这张大图片称之为精灵图) (优点:减少服务器发送次数,减轻服务器的压力,提高页面加载速度) 精灵图的使用步骤:1.创建一个盒子,设置盒 ...

  10. vue3 使用watch 监听多个数据

    // 监听时间选择 watch( [ internalSubmTimer, internalTimer, externalSubmTimer, externaTimer, callbackTimer, ...