python容器主要介绍四部分内容,分别是列表、元组、字典和集合。最后再比较一下这几种数据结构。这一部分内容在python中是非常重要的部分,掌握好了这几种数据结构在处理数据的时候就会很方便,但是前提条件是对这几种数据结构的特性要很了解。在实际编程中,最常见的工作就是将数据进行拆分和和合并,将其加工为特定的形式,而数据结构就是这种利器。
一、列表
列表是可变的,不同于字符串,它可以直接对原始列表中的元素进行修改。
列表中的元素可以是不同的数据类型的元素,而字符串中的元素都是同一数据类型的元素(字符)
创建列表
○ []
○ list()
○ 列表推导式
使用list()将其他数据类型转换为列表
使用[offset]来获取元素
使用[offset]来修改元素
列表中的元素可以是列表
提取一定范围的元素
○ 使用切片
添加元素
○ Append() 在尾部添加元素
○ Insert() 在指定位置添加元素
合并列表
○ Extend()
○ +=
删除元素
○ Del 它是python语句,而不是列表方法
○ Pop() 默认删除尾部元素,可以通过指定数字来删除指定位置的元素
§ 可以通过pop()来实现栈和队列的功能
○ Remove() 删除具有指定值的元素
查询元素
○ Index() 查询具有特定值的元素位置
○ In 利用in来判断一个值是否存在与列表中
记录特定值出现的次数
○ Count()
将列表转换为字符串
○ Join() 注意:join() 是字符串方法,而不是列表方法
列表元素排序
○ Sort() 改变原列表内容
○ Sorted() 不改变原列表内容
○ 默认为升序顺序,使用reverse = True来变为降序排列
获取列表长度
○ Len()
列表的赋值和复制
○ 使用 = 来将一个列表赋值给别的变量,通过变量能直接修改列表中的元素,指的是同一个对象
○ Copy() 将一个列表的值复制到另一个新的列表中,是两个不同的对象
二、元组
元组是不可变类型,可以把元组理解为一个常量列表
创建元组
○ () 创建一个空元组
○ 元素后面使用逗号来自动生成元组
将其他类型数据转换为元组
○ Tuple()
元组解包
○ 直接将元组赋值给多个变量进行接收
变量交换
○ 不需要借助临时变量,直接对变量值进行交换
三、字典
字典是可变数据类型,同列表一样,那有了列表为什么还需要字典呢?因为列表中的元素是有顺序的,列表是按下标来进行查找元素的,当列表元素多的时候,查找起来就不是很方便了。而字典中的元素顺序不重要,而可以通过键来访问元素。但是注意一点:字典的键必须是不可变对象,因此列表、字典、集合都不能作为字典的键,而元组可以作为字典的键。
字典的创建
○ {}
将双值子序列转换为字典
○ Dict()
○ 双值子序列可以理解为一种数据类型中有两个元素,比如说列表中含有的元素为('a','b')或者是含两个字符的字符串"ab"
添加或修改元素
○[key]
字典的合并
○ Update()
删除元素
○ Del 删除具有指定键的元素
○ Clear() 删除所有元素 或者 直接给字典变量赋值一个{}也是删除所有元素
判断一个键是否存在
○ in
获取字典元素
○ [key]
在使用【key】获取元素之前,为了避免找不到相应元素而报错,可以事先通过in测试键是否存在
○ Get()
获取所有键
○Keys() 返回dict_keys(),它是键的迭代形式,可以通过list()来将dict_keys转换为列表类型
获取所有值
○ Values() 返回dict_keys(),它是值的迭代形式,可以通过list()来将dict_keys转换为列表类型
获取所有键值对
○ Items() 返回dict_keys(),它是键值对的迭代形式,可以通过list()来将dict_keys转换为列表类型
字典的赋值和复制
同列表的赋值和复制copy()
四、集合
可以简单把集合理解为舍弃了值的字典,而且键与键之间也不允许重复。
集合的创建
○ Set()
○ 用大括号将一系列值以逗号隔开,比如{1,2,3,4,5}
将其他类型转换为集合
○ Set()
当字典作为参数传入时,只有键会被使用
使用in测试值是否存在
集合的操作运算
○ 交 & 或者 intersection()
○ 并 | 或者 union()
○ 差 - 或者 difference()
○ 异或 ^ 或者 symmetric_difference()
五、几种数据结构的比较
- 这几种数据结构都可以通关[]来对单个元素进行访问
- 字符串和元组是不可变数据类型,而列表和字典是可变数据类型
- 这几种数据结构可以进行自由组合,形成更大更复杂的结构,而唯一的限制来源于这些内置的数据类型本身,比如字典的键必须是不可变对象,因此列表、字典、集合都不能作为字典的键,而元组可以作为字典的键。