python常用数据结构模块--collections
2024-10-21 11:38:51
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 参考源码样例
最新文章
- js模版引擎handlebars.js实用教程——为什么选择Handlebars.js
- 360doc的文章不能复制的解决办法
- Handling events in an MVVM WPF application
- Unity Standard Assets 简介之 2D
- MySQL主从修复
- 获取某月第一天,最后一天的sql server脚本 【转】http://blog.csdn.net/chaoowang/article/details/9167969
- 『奇葩问题集锦』npm install 报错 node-pre-gyp ERR! node-pre-gyp -v v0.6.25
- fscanf函数
- hdu2151(递推dp)
- SVN Access to '/svn/Test/!svn/me' forbidden,不能更新解决办法
- Django 最好的缓存memcached的使用 小记
- Java常用类(五)之集合工具类Collections
- Mysql的主从配置
- javascript History对象属性和方法
- RabbitMQ 内存控制 硬盘控制
- [LeetCode&;Python] Problem 628. Maximum Product of Three Numbers
- 20155207 EXP8 Web基础
- Recover Binary Search Tree leetcode java
- mysql查询表基本操作
- [bzoj 1260][CQOI 2007]涂色paint
热门文章
- 推荐一款.Net Core开发的后台管理系统YiShaAdmin
- linux备份系统
- Hbase学习三:Hbase常用命令总结
- Java第三讲动手动脑
- 从安装开发环境到第一个“hello world”
- Educational Codeforces Round 137 (Rated for Div. 2) - F. Intersection and Union
- 对称加密、非对称加密 与 HTTPS
- SpringBoot的使用
- 蓝牙mesh组网实践(常见调试问题整理)
- Linux 在miniconda和anaconda同时安装时,卸载miniconda