1. 字典的定义
字典是一个可变对象,它可以存储任意类型的对象。
字典元素由键值对组成,字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 。
其中键必须是唯一的,而值可以不唯一。值可以是任何数据类型,但键必须是不可变的,如字符串,数字或元组。
2. 字典的创建
格式:dict = {key1:value1, key2:value2, key3:value3}。
空字典(不包含任何键值对)由两个大括号组成,如{}。
dict1 = {} # 定义一个空字典
dict2 = {"name":"霜花似雪", "age":25, "height":171, "address":"广东深圳"}
也可以使用dict()函数来创建字典,dict()函数可以将序列转化为字典
例如:
student = [("小明", 100), ("小兰", 98), ("小张", 88)]
dict(student) => 结果:{"小明":100, "小兰":98, "小张":88 }
再例如:
dict(name="霜花似雪", age=25, address="广东深圳")
结果:{"name":"霜花似雪", "age":25, "address":"广东深圳"}
3. 字典的基本操作
(1)访问字典里的值
通过字典名[key]的方式来访问字典里的值,
例如:
user = {"name":"霜花似雪", "age":25, "height":171, "address":"广东深圳"}
user["name"] => 结果:霜花似雪
user["age"] => 结果:25
user["phone"] => 结果:报错,原因是键phone不存在
(2)修改或添加字典元素
通过给字典名[key]赋一个新值来修改字典;
向字典添加新的键值对来向字典添加元素;
例如:
user = {"name":"霜花似雪", "age":25, "height":171, "address":"广东深圳"}
user[name] = "东方不败" # 修改
user[age] = 30 # 修改
user[phone] = "18295514499" # 添加
(3)删除字典元素
这里的删除指的是显式删除,显式删除一个字典使用del命令来实现,使用del可以删除字典的某个元素,也可以删除整个字典。
user = {"name":"霜花似雪", "age":25, "height":171, "address":"广东深圳"}
del user["age"] # 删除字典中的age键值对
del user # 删除整个字典
4. 字典健的特性
(1)字典的键是唯一的,且是不可变对象,字典健可以是字符串,数字或元组。字典的值可以是任何对象(Python中一切皆对象),既可以是标准对象,也可以是用户定义的对象。
(2)在一个字典中,不允许同一个键出现两次。创建字典时,如果同一个键出现两次,后面的键值对会覆盖前面的。
(3)字典的键必须是不可变对象,可以是数字,字符串或元组,而不能是列表。
5. 字典方法
(1)len(dict) 用于获取字典的元素个数,换句话说是有几对键值对。
(2)str(dict) 用于将字典转化为字符串,以可以打印的字符串表示。
(3)type(dict) 用于返回输入的变量类型,如果变量是字典就返回字典类型。
6. 字典的格式化字符串
字典的格式化方式是在每个转换说明符中的%字符后面加上用圆括号括起来的键,再跟上其他说明元素。
例如:
user = {"name":"霜花似雪", "age":25, "height":171, "address":"广东深圳", "money": 123652562.7656256}
print("%(name)s" %user) => 结果: 霜花似雪
print("%(age)d" %user) => 结果: 25
print("%(money).4f" %user) => 结果: 123652562.7656
7. 字典与列表的区别
当字典和列表中的数据量很大时,list的查询效率会大大下降,而字典无论有多大,查询速度都会很快。
字典的实现原理与查字典是一样的,查询速度很快。
字典的特点是:
(1)查找和插入的速度极快,不会因为随着key的增加而变慢。
(2)字典需要占用大量的内存,内存浪费多。
列表的特点是:
(1)查找和插入时间随着元素的增加而增加。
(2)列表占用的空间较小,内存浪费少。
字典使用空间换时间,字典内部存放的顺序和键放入的顺序没有关系。
代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
|
字典函数:
1. dict.clear():该方法用于删除字典内的所有元素(清空字典),没有返回值(返回值为None)
2. dict.copy():(复制)该函数用于返回一个具有相同键值对的新字典,是浅复制,因为值本身是相同的,而不是副本。
3. dict.fromkeys(seq[, value]): 该函数用于创建一个新字典,以序列seq中的元素做字典的键,value为字典所有键对应的初始值。
参数:dict表示指定字典;seq表示字典键值列表;value表示可选参数,用于设置键序列(seq)的值。
该方法返回一个列表。
4. dict.get(key, default=None): 该函数用于获取指定键key的值,如果值不在字典中,就返回默认值。
参数:dict表示指定字典;key表示字典中要查找的键;default用于指定默认值,当键的值不存在时返回该默认值。
该方法返回结果为指定键的值,如果值不在字典中,就返回默认值None。
5. key in dict : in操作用于判断键key是否存在于字典dict中,如果键key在字典中,则返回True,不在字典中,则返回False。
.
6. dict.items(): 该函数以列表返回可遍历的(键,值)元组数组。
7. dict.keys(): 该函数以列表返回一个字典的所有键
8. dict.setdefault(key, default=None): 该函数用于获取与给定键相关联的值,如果字典中不存在键key,就会添加键并将值设置为默认值。
参数:dict为指定的字典;key表示查找的键;default表示键不存在时设置的默认值。
该方法没有任何返回值。
9. dict.update(dict2): (更新或合并)该函数用于把字典dict2中的键值对更新到字典dict中。
参数:dict表示指定的字典;dict2表示要添加到指定字典dict中的字典。
该方法没有任何返回值。
10. dict.values(): 该函数以列表的形式返回字典中的所有值。它与返回键的列表不同,返回的列表中可以包含重复的值。
返回结果为字典中的所有值。
11. pop(key[, default]): 该函数用于删除字典给定键key所对应的值,返回值为被删除的值。key值必须给出,否则返回default值。
参数:key要删除的键值;default如果没有key,返回default值。
12. popitem(): 该函数用于随机返回被删除字典中的最后一对键和值。如果字典为空,却调用了此方法,就报异常KeyError错误。
返回一个键值对(key,value)形式,按照后进先出的顺序规则,即最末尾的键值对。
代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
|
结束语:路是自己选的,后悔的话,也只能往自己的肚子里咽。