- 字典是一种无序,可变的序列,以键值对形式存储任意类型对象
- 通过键来读取元素
- 字典是可变的,可以任意嵌套
- 字典的键必须唯一,键必须不可变
- 字典的数据类型是dict()
1、python创建字典
1.1、使用{}创建字典
# 使用字符串作为键
dict1 = {"数学":102,"语文":112,"英语":99}
# 使用元组和数字作为键
dict2 = {(10,20):"great",40:[1,2,3]}
print(dict2)
# 创建空字典
dict3 = {}
print(dict3)
1.2、通过fromkeys()方法创建字典
还可以使用python使用dict字典类型提供的fromkeys()方法创建带有默认值的字典
dictname = dict.fromkeys(list,value=None)
list表示字典中所有键的列表
value表示默认值,不写则为空值
# 这种方式通常用于初始化字典,设置value的默认值
corse = ["语文","数学","英语"]
CDict = dict.fromkeys(corse,60)
print(CDict) # {'语文': 60, '数学': 60, '英语': 60}
1.3、通过dict()映射函数创建字典
方式1:
# 使用此方式创建字典时,字符串不能带引号,键必须是字符串
demo1 = dict(语文=30,数学=40,英语=79)
方式2:
list1 = [("语文",88),("数学",99),("英语",80)]
list2 = [["语文",88],["数学",99],["英语",80]]
tup1= (("语文",88),("数学",99),("英语",80))
tup2= (["语文",88],["数学",99],["英语",80])
demo2 = dict(list1) # {'语文': 88, '数学': 99, '英语': 80}
方式3:
# 可以是列表、字符串、元组
keys = ["语文","数学","英语"]
values = [88,99,101]
# 通过dict() 函数和 zip() 函数,可将前两个列表转换为对应的字典
demo3 = dict(zip(keys,values))
print(demo3)
创建空字典
demo4 = dict{}
2、访问字典
字典通过键访问元素
dict1 = {"数学":102,"语文":112,"英语":99}
#键存在
print(dict["数学"])
# 键不存在
print(dict["物理"]) # 报错
Python 更推荐使用 dict 类型提供的 get() 方法来获取指定键对应的值。当指定的键不存在时,get() 方法不会抛出异常
dict1 = {"数学":102,"语文":112,"英语":99}
# 键存在时
print(dict1.get("语文"))
# 键不存在时,返回空值None,如果想明确的提示键不存在,可以设置get()的第二个参数
print(dict1.get("物理","该键不存在")) # 该键不存在
3、删除字典
Python 自带垃圾回收功能,会自动销毁不用的字典
dict1 = {"数学":102,"语文":112,"英语":99}
del dict1
4、字典基本操作
4.1、字典添加键值对
直接给不存在的 key 赋值即可
dict1 = {"数学":102,"语文":112,"英语":99}
dict["物理"] = 99
dict["生物"] = 101
print(dict1) #{'数学': 102, '语文': 112, '英语': 99, '物理': 99, '生物': 101}
4.2、字典修改键值对
key不能被修改,只能修改值
dict1 = {"数学":102,"语文":112,"英语":99}
dict1["语文"] = 140
print(dict1) # {'数学': 102, '语文': 140, '英语': 99}
4.3、字典删除键值对
使用 del 语句
dict1 = {"数学":102,"语文":112,"英语":99}
del dict1["英语"]
print(dict1) # {'数学': 102, '语文': 112}
4.4、判断字典中是否存在指定的键值对
先判断是否有对应的键,使用in 或not in
dict1 = {"数学":102,"语文":112,"英语":99}
print("语文" in dict1) #True
print("地理" in dict1) # False