上一篇文章:Python中的字节bytes+列表lists
本篇目录
元组tuple
元组的介绍与创建
- 元组也是序列结构,元组是一种不可变的序列结构
- 元组的创建:用英文状态下的圆括号包裹
- 方法的创建过程
tu = tuple()
不传参数空列表,参数必须是iterable
可迭代的,所以整数不可作为参数,整数是不可迭代的
- 创建只拥有一个整数元素的元组,可以这样
tu = (666,)
逗号不可省略,否则就变成了一个整数int
元组与列表相同的操作
- 使用方括号加下标的方式访问元素
- 切片(形成新的元组对象)注意切片都是左闭右开的
由于元组是不可变的序列对象,所以切片后不再是原来的那个元组,又是一个新的对象,内存地址不同 - 元组只有
tuple.count()
和tuple.index()
这两种方法,其作用都是与列表中的一样的 - python内置函数
reversed()
和sorted()
,这两个都不是元组的方法,不属于任何类型,是python内置的,使用后要强制性转换为元组。注意sorted()返回值是一个列表
- 加法和乘法
元组中不允许的操作
- 由于元组是不可变的序列,所以元组不能修改或新添元素,也不能删除某个元素,但可以删除整个元组
- 实际上,元组没有任何会对内部元素发生修改动作的方法。例如,元组没有
remove()
,append()
,pop()
等方法
嵌套操作
无论是列表还是元组都是可以进行多重嵌套的,且使用双重或多重下标进行引用
- 在元组中可以嵌套列表,元组不可改变,而元组中的列表可以改变
列表和元组的优缺点
元组所消耗的内存比较少,所以元素不变的情况下宜使用元组;当元素需要改变的情况下使用列表,或者两者相互转换来弥补彼此的不足。二者使用tuple()
函数和list()
函数进行互相转换
字典dict
字典的介绍
- 在python中,如果我们想要存储某个人的信息,当然可以存储在列表当中,并且通过下标进行访问。但是如果想要存储的信息量特别庞大的时候,通过下标进行访问和查找就会相当的麻烦,消耗计算机的算力。
- 所以python中就引入了字典这样的一个概念。比如我们生活中的新华字典,里面有很多的汉字,而我们却可以通过特殊的方法快速地查到想要的汉字。
- python中的字典数据类型是基于hash散列算法实现的,采用键值对
(key:value)
的形式,根据key的值计算value的地址,具有非常快速的查取和插入速度。它是一种可变的对象,所以支持修改、插入和删除等
操作
字典的创建
- 用
{key1:value1, key2:value2, ... ...}
的形式创建字典 -
- 前面的key可以理解为关键词,冒号后面的是数据(把这个key理解为关键词,相当于用关键词来查找数据)
-
- 注意:从python3.6开始,字典对象会保持键值插入时的顺序,并且其包含的元素个数不限,数据的类型也可以是其他任何数据类型
-
- 字典的key必须是不可变的对象,例如整数、字符串、bytes和元组,且元组中不可以有任何可变的元素,使用最多的还是字符串。列表、字典集合等就不可以作为key。同时,同一个字典内的key必须是唯一的,如果key在同一字典中出现了多次,那么以最后一次出现的为准。
-
- 字典没有下标,用方括号加key关键词的形式查找数据
- 字典没有下标,用方括号加key关键词的形式查找数据
- 使用
dict()
来创建字典,说明文档如下图
-
dict(**kwargs)
创建字典
-
dict(mapping)
使用映射的方法创建字典
-
-
zip()
打包
-
字典的访问与修改以及删除等操作
- 访问采用方括号加key的方式进行访问
- 修改或添加,取出重新赋值
dic.get(key)
从字典中得到某个值,如果该字典中没有的话,则返回None
dic.items()
获取所有的键值对,即(key:value)
dic.keys()
获取所有的keydic.values()
获取所有的value- 删除字典元素
del dic[exit_key]
或dic.pop(exit_key)
这里的pop()必须传参数 - 清空字典
dic.clear()
- 删除整个字典直接
del
集合set
集合的介绍与创建
- 集合(set)是一个无序不重复的元素集,基本功能包括关系测试和消除重复元素。是可变的数据类型。集合数据类型的核心在于自动去重。
- 创建:集合使用大括号
{}
包裹元素,元素之间用英文状态下的逗号进行分隔。下图为set()
的说明文档
下图为代码示范
集合的相关操作
- 添加元素用
set.add(object)
TypeError: unhashable type: 'list'
- 扩充集合当中的元素
set.update()
Update a set with the union of itself and others
- 删除元素:
set.remove(key)
删除指定元素,set.pop()
随机删除元素。集合不能通过下标取出元素,因为集合是乱序的。
总结可变类型与不可变类型
- 可变:改变数据本身,内存地址不变。
列表
、字典
、集合
三者都是可变的 - 不可变:一旦改变了数据本身,内存地址也跟着改变。
数值
、字符串
、字节
、元组
四者都是不可变的