[python]python内置容器的学习
来源:互联网 发布:洁伶卫生巾 销售网络 编辑:程序博客网 时间:2024/04/30 16:28
基本顺序存储结构——列表与元组
Python中的基本顺序存储结构是列表与元组,在操作的复杂度上和数组完全相同,其中列表是可变数据类型,元组是不可变数据类型。这里先介绍一下两种数据结构共有的方法:
x in s
返回布尔值,x在s中
x not in s
返回布尔值,x不在s中为True
s + t
s和t的拼接,可以+=
s * n or n * s
n为int类型,返回s重复n次的结果。可以*=,同上
s[i]
返回索引为i的元素
s[i:j(:k)]
切片,返回子数组,从s[i]~s[i-1],k为步长,默认为1.
len(s)
现有元素个数
min(s)
最小元素
max(s)
最大元素
s.index(x[,i[,j]])
在s[i] ~ s[j-1]中,第一个大小为x的元素的索引,i,j默认0,-1
s.count(x)
统计x的数目
这些都不涉及对数组内元素的更改,因此是列表和元组都可以使用的。注意元组只能使用以上的方法。
接下来介绍可变有序容器的方法,注意各种方法都有利用切片赋值的实现!
s[i] = x
赋值操作
s[i:j(:k)] = t
按照切片规则选择元素进行赋值,注意如果t为[]可以用作删除,如果i==j可以用作插入
del s[i:j(:k)]
按照切片规则进行删除
s.append(x)
在尾部插入,等价于s.insert(I,len(s)),复杂度O(1).
s.clear()
清空所有元素 (等价于del s[:])
s.copy()
创建一份s的浅拷贝 (等价于 s[:])
s.extend(t) or s += t
在后面插入一组,相当于+=;
s.insert(i, x)
在i处插入x (等价于s[i:i] = [x])
s.pop([i])
默认删除尾部元素,否则删除i处的元素
s.remove(x)
删除第一个等于x的元素
s.reverse()
列表反向
此外,列表还独有s.sort(key=None, reverse=None),其中key是一个函数名,也就是比较函数,reverse为布尔值,True的话则会列表反向。
Sort单独列出来是因为如果自己从可变有序容器里面派生的话并没有这个方法。
在机器学习实战一书中,一般用列表来处理读取存储在文本中的数据,在进行矩阵运算等数据运算的情况下,用numpy下的array,以此避免造成混乱。
2.基本哈希存储结构——字典
字典是基于哈希表的一种映射结构,注意本文中介绍的Python的数据结构并没有任何一种使用了红黑树的搜索结构。
len(d)
返回字典元素个数
d[key]
返回key对应的value
d[key] = value
为字典元素赋值,如果没有则增加元素
del d[key]
删除字典元素
key in d/ key not in d
查看key是否在d中
iter(d)
返回一个迭代器,具有__next__()方法
clear()
清空
copy()
浅复制
fromkeys(seq[, value])
以seq作为键,value作为值建立字典,默认value为None
get(key[, default])
安全的get方法,如果不存在返回default,如果不指定default则报错
items()
列出一个键值对的view
keys()
列出key的view,通常用于遍历
values()
Return a new view of the dictionary's values.
pop(key[, default])
Key在d中则删除,和del[key]一样,default如果被指定,那么当不存在key的时候会返回default而不会报错
popitem()
弹出一个键值对,为key的哈希序列中的第一个
setdefault(key[, default])
安全的添加操作,如果存在就返回value不更改值,如果不存在添加一个key:default的表项,default默认为0
update([other])
更改操作,other可以是键值对的列表或元组(二级的),也可以是字典,用other中的键值对添加到或替换原有键值对
3.键值相等的字典——集合set与frozensetPython中由set和frozenset两种集合结构。由于set中的元素既是键又是值,所以他的内容必须是不可修改的,frozenset就是被声明为常量的set,,用于建立集合的集合
首先介绍两种集合共有的方法:
注意用的都是逻辑运算符进行衍生而不是+
len(s)
集合元素个数
x in/not in s
是否在集合中
isdisjoint(other)
和other的交集为空
set <= other
包含于
set < other
真包含于
set >= other
包含
set > other
真包含
set | other | ...
并
set & other & ...
交
set - other - ...
差
set ^ other
对称差(并-交)
copy()
浅拷贝
而set独有的方法是,一个是诸如&=之类的运算符,还有:
add(elem)
增加元素
remove(elem)
删除元素,不存在则报错
discard(elem)
删除元素,不存在不报错
pop()
删除哈希表第一个元素,空集报错
clear()
清空
上述都是最基本的数据类型,还有一些拓展类,用到再做总结。
- [python]python内置容器的学习
- python 内置容器
- Python中内置容器
- Python内置容器之列表
- python内置容器之字典
- python内置容器之集合
- python学习笔记(五)之内置容器List
- python学习笔记(六)之内置容器dict的妙用
- Python学习:内置函数
- python内置函数学习
- Python内置函数学习
- Python学习-内置函数
- 学习python 之 内置的函数
- python基础数据类型及内置容器详解
- Python基础-基本语法,内置容器
- python内置容器之元组
- Python学习系列十四:python的内置函数
- python的内置工具
- std:ios::sync_with_stdio(false);
- 数字签名API使用
- 1.0Java缓存-Ehcache配置详解及CacheManager使用
- mysql source 命令导入大的sql文件的方法
- 分享扫描文字识别软件的操作方法
- [python]python内置容器的学习
- [CQOI2017] 蒟蒻记
- java 开发为什么选择freemarker 放弃jsp
- ftp connect: No route to host 解决方案
- 调用阿里云身份证识别接口(使用appcode方式)
- 如何创建一个vue的新项目,用命令行的方式创建
- 管程
- 腾讯实习面试
- ubantu下安装opencv3.1.0到自定义文件夹并使用