一、字典
1、字典是基于hash散列算法实现的。字典包含的元素个数不限,值得类型可以是任何数据类型。但是字典的key值必须是不可变的对象(思考一下,python中不可变你的对象有哪些?),例如:整数、字符串、元组、bytes,(疑问,元组中嵌套有列表怎么办?),因此列表、字典、集合等不能作为key。同时,同一个字典内的key必须是唯一的,但值可以不唯一。
2、py3.6以后的字典是有序的,它将保持元素插入时的先后顺序!
3、注意:字典元素在内存中的存储方式是不连续的,也没有链接关系。
4、字典的基本操作
(1)创建字典
用花括号直接表示字典:dict1 = {}
通过“ 列表+元组+dict函数 ” 来创建:
通过字典指定键值来创建:
注意:这里直接将=前面的key值当成字符串了,不需要加‘ ’;但是 = 后面的value必须加‘ ’。
(2)访问和修改字典
虽然字典是有序的,但是字典仍然是集合类型,不是序列类型,因此没有索引下标、切片的概念。
增加字典元素可以直接增加键值,无需先声明。
(3)删除字典的三种方法。
方法1: del 方法
方法2:pop方法
方法3:clear 方法
(4)字典最常用的集中方法
- dict.get()----获取指定key值对应的键值
- dict.keys()----以列表返回字典所有的键
- dict.values()----以列表返回字典所有的值
- dict.items()----以列表返回可遍历的(键, 值) 元组对
二、Bytes
1、bytes数据类型通常用语网络数据传输、二进制图片和文件的保存等等。在python3以前,bytes类型与字符串是同一类型。
2、bytes对象只负责保存以二进制字节序列的形式记录所需要记录的对象。字符串是以字符为单位进行处理的,bytes类型是以字节为单位处理的,其操作和内置方法与字符串基本一致,也是不可变的序列类型。
3、基本操作
(1)创建。
(2)编码和解码
string = b‘xxxxxx‘.decode()
直接以默认的utf-8编码解码bytes成string
b = string.encode()
直接以默认的utf-8编码string为bytes
三、集合
1、set集合是一个无需不重复元素的集,会自动去重
2、集合的创建
(1)可以适用set()函数创建,也可以使用{1,2,3,4,5}。但是要注意,如果想要创建一个空集合,必须使用set()函数。
(2)集合的基本操作。
add方法:添加元素,可以重复添加,但是不会有效果
update方法:将另一个可迭代对象添加到集合中,会做去重
remove方法:移除指定元素
pop方法:删除元素,注意,pop方法无法指定元素
注意:集合没有索引、切片等操作,除了上述操作之外,集合只支持交、并、补等数学操作。