python常用数据结构
0. 字典初始化
d = {‘a’:1,’b’:2}
或 d={}
d[‘a’] = 1
d[‘b’] = 2
是不是和json格式数据很相似,语法和JavaScript又很相似
1. 变量接受序列分解:
p = (3.14,8.23)
X,Y = p
print(x,y)
3.14,8.23
2. Collections.deque 固定长度队列。
>>> from collections import deque
>>> p = deque(maxlen = 2)
>>> p.append(3.14)
>>> p.append(8.23)
>>> p
deque([3.14, 8.23], maxlen=2)
3. heapq 最大值最小值。
>>> import heapq
>>> p = [3.14,8.23,7.10]
>>> heapq.nlargest(1,p)
[8.23]
>>> heapq.nsmallest(1,p)
[3.14]
5.找出两个字典相同键 和相同项
>>> from collections import OrderedDict
>>> d = {}
>>> d['a'] = 1
>>> d['c'] = 3
>>> d['b'] = 2
>>> dd = {}
>>> dd['a'] = 3
>>> dd['e'] = 5
>>> dd['b'] = 2
>>> d.keys() & dd.keys()
{'a', 'b'}
>>> d.items() & dd.items()
{('b', 2)}
6 去除数组或字典值重复的元素 set
>>> d ={1,1,2,2,3,3,4,5}
>>> set(d)
{1, 2, 3, 4, 5}
7 截取数组元素
>>> d = [1,1,2,2,3,3,4,5]
>>> d[2:4]
[2, 2]
>>> d[2:5]
[2, 2, 3]
8 统计元素出现次数Counter.most_common。
>>> d = [1,1,1,2,2,4,5]
>>> from collections import Counter
>>> master = Counter(d).most_common(2)
>>> print(master)
[(1, 3), (2, 2)]
4. collections.OrderedDict 有序字典
>>> from collections import OrderedDict
>>> d = OrderedDict()
>>> d['a'] = 1
>>> d['c'] = 3
>>> d['b'] = 2
>>> print(d)
OrderedDict([('a', 1), ('c', 3), ('b', 2)])
9.数组排序 operator.itemgetter
>>> from operator import itemgetter
>>> d = [2,1,5,4,3]
>>> sorted(d)
[1, 2, 3, 4, 5]
10.字典排序 sort
>>> from operator import itemgetter
>>> p = [{'x':'3','y':'3'},{'x':'4','y':'4'},{'x':'2','y':'2'},{'x':'1','y':'1'}]
>>> p.sort(key=itemgetter('x'))
>>> print(p)
[{'x': '1', 'y': '1'}, {'x': '2', 'y': '2'}, {'x': '3', 'y': '3'}, {'x': '4', 'y': '4'}]
11. lambda 表达式
>>> p = [{'x':'3','y':'3'},{'x':'4','y':'4'},{'x':'2','y':'2'},{'x':'1','y':'1'}]
>>> pLamb = [n['x'] > '2' for n in p]
>>> print(pLamb)
[True, True, False, False]
12 compress 与 11项 结合使用。
>>> from itertools import compress
>>> list(compress(p,pLamb))
[{'x': '3', 'y': '3'}, {'x': '4', 'y': '4'}]
13.逻辑上合并对象
>>> p = {'x':1,'y':2}
>>> p2 = {'y':3,'z':4}
>>> from collections import ChainMap
>>> c = ChainMap(p,p2)
>>> print(c)
ChainMap({'x': 1, 'y': 2}, {'y': 3, 'z': 4})
>>> list(c.keys())
['x', 'z', 'y']
python常用数据结构的更多相关文章
- python常用数据结构讲解
一:序列 在数学上,序列是被排成一排的对象,而在python中,序列是最基本的数据结构.它的主要特征为拥有索引,每个索引的元素是可迭代对象.都可以进行索引,切片,加,乘,检查成员等操作.在py ...
- Python常用数据结构之collections模块
Python数据结构常用模块:collections.heapq.operator.itertools collections collections是日常工作中的重点.高频模块,常用类型由: 计数器 ...
- Python常用数据结构之heapq模块
Python数据结构常用模块:collections.heapq.operator.itertools heapq 堆是一种特殊的树形结构,通常我们所说的堆的数据结构指的是完全二叉树,并且根节点的值小 ...
- python常用数据结构(1)
python中有四种最常用的数据结构,分别是列表(list),字典(dict),集合(set)和元组(tuple) 下面简单描述下它们的区别和联系 1.初始化 不得不说,python数据结构的初始化比 ...
- Python常用数据结构(列表)
Python中常用的数据结构有序列(如列表,元组,字符串),映射(如字典)以及集合(set),是主要的三类容器 内容 序列的基本概念 列表的概念和用法 元组的概念和用法 字典的概念和用法 各类型之间的 ...
- python 常用数据结构使用
python 字典操作 http://www.cnblogs.com/kaituorensheng/archive/2013/01/24/2875456.html python 字典排序 http:/ ...
- python常用数据结构的常用操作
作为基础练习吧.列表LIST,元组TUPLE,集合SET,字符串STRING等等,显示,增删,合并... #===========List===================== shoplist ...
- python 常用数据结构
#coding=utf- #元组,不可变序列(,) a=(,,,) print(a) a=tuple([,,,])#第二种定义方式 print(a) print(a[]) print(a[:]) #可 ...
- python常用数据结构(2)
1.有名字的元组——namedtuple >>> from collections import namedtuple >>> Point = namedtuple ...
- 学Python常用数据结构之字典
迄今为止,我们已经为大家介绍了Python中的三种容器型数据类型,但是这些数据类型还不足以帮助我们解决所有的问题.例如,我们要保存一个人的信息,包括姓名.年龄.体重.单位地址.家庭住址.本人手机号.紧 ...
随机推荐
- dig 命令使用
1.简单查询 # dig www.guoxh.cn 2.按记录类型查询,默认为A记录 # dig www.guoxh.cn cname # dig www.guoxh.cn mx # dig www. ...
- win10 UWP 单元测试
我们在写代码的时候不能保证我们写出来的代码是正确的,所以我们经常要单元测试. 单元测试和重构都是在做完一个小小函数一般就要进行一次,越早做就越好,可以比较早发现问题,这时我们还记得我们写的内容,不过比 ...
- OpenWRT (RT5350) 使能两个串口
OpenWRT(RT5350) 默认使能一个串口(uartlite) ,当做console口了,另外一个串口(uartf)与gpio复用. 在查找资料的过程中,发现在新的内核中使用到了设备树(devi ...
- 浅谈javascript继承体系
最近做web项目,接触了jquery等框架,虽然使用方便,但是还是想学习下Javascript,今天分享下最近对js原型继承的理解,不足之处欢迎指正. 一.构造器的原型属性与原型对象 刚接触js时通常 ...
- 【计算机网络】 一个小白的DNS学习笔记
参考书籍 <计算机网络-自顶向下> 作者 James F. Kurose DNS的作用 DNS是因特网的目录服务 DNS是因特网的目录服务,它提供了主机名到IP地址映射的查询服务 ...
- 有关Datatabled的合并,排序和删除重复行的方法
当某些操作需要涉及合并Datatable时,我们应该如何操作呢? 下面是自己总结的一些方法: 当有两表dt1和dt2的时候,使用dt1.Merge(dt2) 可以将表1表2中相同的合并在一起 排序方法 ...
- Azure环境中Nginx高可用性和部署架构设计
前几篇文章介绍了Nginx的应用.动态路由.配置.在实际生产环境部署时,我们需要同时考虑Nginx的高可用性和部署架构. Nginx自身不支持集群以保证自身的高可用性,商业版本的Nginx+推荐: T ...
- 03-从零玩转JavaWeb-创建类与对象
创建类创建对象 一.什么是成员变量 对象的一些状态特征使用成员变量表示 二.行为什么什么表示 对象的 行为 使用 方法 表示 三.如何创建对象 class 类名{0 ~ N个成员变量0 ~ N ...
- NLog在asp.net中的使用
一.关于安装 1.可以直接通过vs自带的Nuget包管理器来搜索下载,直接搜索"NLog": 注意,除了要安装第一个之外,一定要安装"NLog.Config", ...
- Java常用API
常用Java API 一. java.io.BufferedReader类(用于从文件中读入一段字符:所属套件:java.io) 1. 构造函数BufferedReader(java.io.FileR ...