认识字典

可变数据类型,通常用于存储描述一个物体的相关信息,可以用来存储多个数据
数据通过 键值对 形式出现,字典是 无序 的对象集合,即字典不支持下标,而是通过键名查找数据

字典特征

用 dict() 函数
用{ } 定义,键和值之间用 「 : 」,键值对之间用 「 ,」隔开

  • 键 「 key 」是索引,键不能重复
  • 值 「 value 」是数据
  • 值 可以是任何数据类型,但是 键 只能使用 字符串、数字或元组,即不可变类型
  • 空字典: { }
    1. dicts = {
    2. 'name': 'tom',
    3. 'age': 15
    4. }

    这里 key 分别是 name、age,value 分别是 tom、15

字典方法

增或改

如果 key 存在则修改 key 对应的值,如果 key 不存在则新增此键值对

  • 字典 [ key ] = value

删除

  • pop(key)

    1. a = {'x': 1, 'y': 2}
    2. a.pop('x')
  • 字典序列.clear()

    • 保留空字典
  • del 字典 或 del( 字典)

    • del 字典[key],可以删除指定key数据 ```python dict1 = {‘name’: ‘Tom’, ‘age’: 20, ‘gender’: ‘男’} del dict1[‘gender’] print(dict1)

{‘name’: ‘Tom’, ‘age’: 20} ```

查找

通过 key 查找 value

  • 字典序列[key]
    • 存在返回值,不存在返回错误 ```python dict1 = {‘name’: ‘Tom’, ‘age’: 20, ‘gender’: ‘男’} print(dict1[‘name’]) print(dict1[‘id’])

Tom 报错 ```

  • get()函数查找
    • 字典序列.get(key, 默认值)
    • 如果当前查找的 key 不存在则返回第二个参数(默认值),如果省略第二个参数,则返回 None ```python dict1 = {‘name’: ‘Tom’, ‘age’: 20, ‘gender’: ‘男’} print(dict1.get(‘name’)) print(dict1[‘name’])

print(dict1.get(‘id’, 110)) # id 在字典中不存在

print(dict1.get(‘id’))

Tom Tom

110 # 设置默认值 None ```

通过函数查找 key、value

  • 字典.keys(),获取所有 key 列表
  • 字典.values(),获取所有 value 列表
  • 字典.items(),获取所有 (key, value) 元组列表 ```python dict1={‘name’:’Tom’,’age’:20,’gender’:’男’} print(dict1.keys())

dict_keys([‘name’, ‘age’, ‘gender’]) ``` 返回的均是可迭代对象,可以用 for 循环

循环遍历

  • 遍历字典的 key,for key in 字典序列.keys() ```python dict1 = {‘name’: ‘Tom’, ‘age’: 20, ‘gender’: ‘男’} for key in dict1.keys(): print(key)

name age gender ```

  • 遍历字典的 value

    • for value in 字典序列.values()
    • 遍历字典的元素( key 和 value )
  • for item in 字典序列.items()

    • 返回元组,元组 1 是 key ,元组 2 是 value
  • 遍历字典的的键值对,即 拆包

    • for key, value in 字典序列.items() ```python dict1 = {‘name’: ‘Tom’, ‘age’: 20, ‘gender’: ‘男’} for key, value in dict1.items(): print(f’{key} = {value}’)

name = tom age = 20 gender = 男 ```