1. 字典dict介绍
字典:使用键值对(key:value)来存储数据,每一个键都对应一个值,通过键(key)可以快速找到对应的值(value).
特点:键值对(key:value)存储、键(key)不能重复、可修改。
定义:
python
# 定义字典
字典名称 = {key:value, key:value, key:value...}
# 定义空字典
字典名称 = {}
字典名称 = dict{}
# 根据 key 获取 value
值 = 字典名称[key]
注意点:字典(dict)中的value可以是任何类型的数据,而key不能为可变类型(如,key不可以是列表、集合、字典)
2.字典中的常用方法
字典中的常用方法主要围绕增删改查进行的。
| 方法 | 含义 | 示例 |
|---|---|---|
| 字典名称key = value | 往指定字典中添加key-value键值对 | dict1"韩立" = 680 |
| 字典名称.pop(key) | 删除字典中指定的key,并返回该key对应的value | score = dict1.pop("韩立") |
| del 字典名称key | 删除字典中指定的键值对 | del dict1"许立国" |
| 字典名称key = value | 修改字典中指定的key对应的值 | dict1"南宫婉" = 650 |
| 字典名称key | 根据key获取value | dict1"南宫婉" |
| 字典名称.get(key) | 根据key获取value | dict1.get("李慕婉") |
| 字典名称.keys() | 获取所有的key | dict1.keys() |
| 字典名称.values() | 获取所有的value | dict1.values() |
| 字典名称.items() | 获取所有的key-value键值对 | dict1.items() |
代码示例及运行结果:
python
# 定义字典
dict1 = {"许立国": 620, "南宫婉": 660, "李慕婉": 630, "王林": 690, "贝罗": 670}
dict1["韩立"] = 680
print("新增键值对后的字典:", dict1)
score = dict1.pop("韩立")
print("删除字典中的韩立:", score)
del dict1["许立国"]
print("删除许立国后的字典:", dict1)
dict1["南宫婉"] = 650
print("修改键值对后的字典:", dict1)
value1 = dict1["南宫婉"]
print("获取key为南宫婉的值:", value1)
value2 = dict1.get("李慕婉")
print("获取key为李慕婉的值:", value2)
print("获取字典中的所有key:", dict1.keys())
print("获取字典中的所有value:", dict1.values())
print("获取字典中的所有key-value:", dict1.items())

3. 数据容器对比
数据容器有列表(list)、字符串(str)、元组(tuple)、集合(set)、字典(dict),这5者之间的对比,如下表所示:
| 特性 | 列表(list) | 字符串(str) | 元组(tuple) | 集合(set) | 字典(dict) |
|---|---|---|---|---|---|
| 有序性 | 有序 | 有序 | 有序 | 无序 | 有序(Python3.7+) |
| 元素重复 | 允许 | 允许 | 允许 | 不允许 | key不允许,value允许 |
| 可变性 | 可变 | 不可变 | 不可变 | 可变 | 可变 |
| 索引访问 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| 切片操作 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| 使用场景 | 有序可重复数据集合 | 文本处理 | 固定数据记录 | 去重数据集合 | 键值对 |