字典的定义与特性:
字典的每个键值key ==> value 对用冒号:分割,每个键值对之间用逗号分割,整个字典包括在花括号{}中。
字典名 = {键名1:值1, 键名2:值2}
如:dict = {key1: value1, key2: value2, key3: value3}
字典没有下标 ----- 不是序列类型!
字典是可以改变的。字典是一种映射 ---- map
字典的优势:1 - 描述清楚
2 - 查找方便
3 - 扩展性好
字典的常用操作: ----- dict1 = {'name': 'mayu', 'age': 58}
① 获取值 dict1['name']
② 改变值 dict1['name'] = 'tom' 前提是 --- 'name' 这个键名已存在
③ 新增 dict1['weight'] = 160 前提是 --- ‘weight’这个键名不存在
python3 ------ 从尾部增加
python2 ------ 无序的
④ 如果需要获取的值对应的键不存在,那么 --- 会报键错误
⑤字典内部元素不存在顺序的概念
⑥字典内部不存在相同键名
⑦相同键名时,后面会覆盖前面的值 --- 键是唯一的
⑧键、值的类型:
键的类型可以是:数值、字符串、元组 列表和元组不能作为键
键一定是哈希类型 --- 不能改变
值的类型可以是:任意类型
字典的技巧:
检查键是否存在: 如:print('name' in dict)
删除元素 ---- 有两种 ① del dict['name']
② dict.pop('name') pop方法同时将键对应的值对象 返回给value变量
键值长度: 如:len(dict)
清空字典内容: 如:dict.clear() 只改变改地址的内容
获取所有的key返回在类list中: 如 dict.keys()
获取所有的value值返回在list中: 如 dict.values()
获取所有的key value返回类list中: 如 dict.items()
字典合并: 如 dict1.update(dict2) ---- print(dict1)
字典的遍历:
1 - for one in students: ----- one # 遍历的是键
2 - students.items() ---- 键值对 [(键1,值1),(键2,值2)]
3 - for name, info in students.items(): # items方法 可以获取一个类列表 但是仍不能用下标获取元素。
要想用下标获取元素,需要转换成list后,才可以: 比如 print(list(students.items())[0])
还可以这样写:
for name, info in students.items():
print(name, info)
由于字典是无序的,不好做排序。