定义
- 由一系列键值对组成的可变散列容器。
- 散列:对键进行哈希运算,确定在内存中的存储位置,每条数据存储无先后顺序。
- 键必须惟一且不可变(字符串/数字/元组),值没有限制。
基础操作
创建字典:
字典名 = {键1:值1,键2:值2}
字典名 = dict (可迭代对象)
添加/修改元素:
语法:
字典名[键] = 数据
说明:
键不存在,创建记录。
键存在,修改值。
获取元素:
变量 = 字典名[键] # 没有键则错误
遍历字典:
for 键名 in 字典名:
字典名[键名]
for 键名,值名 in 字典名.items():
语句
删除元素:
del 字典名[键]
""" 字典dict基本操作: 创建 获取元素 遍历 新增 修改 删除 """ # 列表擅长存储单一维度的信息 # 字典擅长存储多个维度的信息 # 1.创建 # 语法1:字典名 = {键1:值1,键2:值2} # 创建字典存储香港信息、字典存储上海信息、字典存储新疆信息 dict_HongKong = { "region":"香港", "new":15, "now":393, "total":4801, "cure":4320, "death":88 } dict_shanghai = { "region": "上海", "new": 6, "now": 61, "total": 903, "cure": 835, "death": 7 } dict_xingjiang = { "region": "新疆", "new": 0, "now": 49, "total": 902, "cure": 850, "death": 3 } # 语法2:字典名 = {键1:值1,键2:值2} # 对于可迭代对象元素的格式要求:一分为二 list01 = ["悟空", ("猪", "八戒"), ["唐", "三藏"]] dict02 = dict(list01) print(dict02) # 2.获取元素 # 在终端中打印香港的现有人数 print(dict_HongKong["now"]) # 在终端中打印上海的新增和现有人数 print(dict_shanghai["new"]) print(dict_shanghai["now"]) # 新疆新增人数增加1 dict_xingjiang["new"] += 1 # 3.删除 # 删除香港现有人数信息 del dict_HongKong["now"] # 删除新疆新增人数信息 del dict_xingjiang["new"] # 删除上海的新增和现有信息 del dict_shanghai["new"],dict_shanghai["now"] # 4.遍历 for key,value in dict_xingjiang.items(): print(key) print(value) for key in dict_HongKong: print(key,end = " ") for value in dict_shanghai.values(): print(value) for key,value in dict_shanghai.items(): if value == 61: print(key) break """ 字典dict基本操作 添加 修改 """ dict_gsx = { "name":"郭士信", "age":26, "sex":"女" } #添加 if "money" not in dict_gsx: dict_gsx["money"] = 1000000 # 修改 if "age" in dict_gsx: dict_gsx["age"] = 27 # 读取 print(dict_gsx["name"])
定义:
使用简易方法,将可迭代对象转换为字典。
语法:
{键:值 for 变量 in 可迭代对象}
{键:值 for 变量 in 可迭代对象 if 条件}
""" 字典推导式 练习1: 将两个列表,合并为一个字典 姓名列表["张无忌","赵敏","周芷若"] 房间列表[101,102,103] {101: '张无忌', 102: '赵敏', 103: '周芷若'} 练习2: 颠倒练习1字典键值 {'张无忌': 101, '赵敏': 102, '周芷若': 103} """ list_name = ["张无忌","赵敏","周芷若"] list_room = [101,102,103] result = {list_name[i]:list_room[i] for i in range(len(list_name))} print(result) new_result = {value:key for key,value in result.items()} print(new_result)
# 所有键值对的列表 [(键1,值1),(键2,值2)]
print(list(dict_gsx.items()))
# 所有Key的列表
print(list(dict_gsx))
# 所有value的列表
print(list(dict_gsx.values()))