目录
1. 创建字典
适用于保存具有映射关系的数据;
1){ }创建字典,括号里面包含多个key-value值,key与value冒号隔开,多个key-value对之间逗号隔开;
一个字典中的key要求是唯一的;
dict_1 = {"语文:": 80, "数学:": 90, "英语:": 85}
dict_2 = { }
# 创建一个空字典
dict_3 = {("物理", "化学", "生物"): 250, "历史": 75}
# key可以为元组,但不可以为列表
2)通过 dict() 函数创建字典
将只包含两个元素的元组或者列表合成一个大列表后使用dict()函数创建字典;
course = [("语文", 80), ("数学", 85), ["英语", 90]]
dict_1 = dict(course)
print(dict_1)
# {'语文': 80, '数学': 85, '英语': 90}
2. 字典的访问、添加、删除、修改等
1)字典是通过key值来访问value的;
dict_1 = {"语文:": 80, "数学:": 90, "英语:": 85}
print(dict_1["数学:"])
# 90
2)添加key-value对
通过 字典[key]=value 直接添加;
dict_1 = {"语文:": 80, "数学:": 90, "英语:": 85}
dict_1["历史"] = 60
print(dict_1)
# {'语文:': 80, '数学:': 90, '英语:': 85, '历史': 60}
3)删除key-value对
dict_1 = {"语文:": 80, "数学:": 90, "英语:": 85}
del dict_1["语文:"]
print(dict_1)
# {'数学:': 90, '英语:': 85}
4)修改某个key的value值
dict_1 = {"语文:": 80, "数学:": 90, "英语:": 85}
dict_1["英语"] = 90
print(dict_1)
# {'语文:': 80, '数学:': 90, '英语:': 85, '英语': 90}
5)判断字典是否包含某个key值
dict_1 = {"语文:": 80, "数学:": 90, "英语:": 85}
print("英语:"in dict_1)
# True
print("历史:"not in dict_1)
# True
3. 字典的其他常用方法
1)clear() 清空字典里的所有key-value值,字典变为一个空字典
2)get() 根据key值获取value值;
补充;当使用方括号访问不存在的key值时,程序会报错,但get()不报错,返回一个None;
dict_1 = {"语文:": 80, "数学:": 90, "英语:": 85}
print(dict_1.get("历史"))
# None
3)update() 使用其他字典去更新字典中的数据,对于被更新字典中已经存在的key,使用新的value值,如果被更新字典中没有key值,则为该字典添加一个key-value对;
dict_1 = {"语文:": 80, "数学:": 90, "英语:": 85}
dict_2 = {"语文:": 90, "历史:": 70}
dict_1.update(dict_2)
print(dict_1)
# {'语文:': 90, '数学:': 90, '英语:': 85, '历史:': 70}
4)items()、key()、values():分别用于获取字典中的所有key-value对、所有key、所有value值,分别返回dict_items、dict_keys、dict_values三个对象,可通过list()函数将他们转换为列表进行操作;
dict_1 = {"语文": 80, "数学": 90, "英语": 85}
all_key_value = dict_1.items()
print(type(all_key_value))
# <class 'dict_items'>
list_1 = list(all_key_value)
print(list_1)
# [('语文', 80), ('数学', 90), ('英语', 85)]
print(list_1[1])
# ('数学', 90)
5)pop() 获取指定key的value值,并删除这个key-value对;
6)popitem() 随机弹出字典中的一个key-value对;
7)fromkeys() 使用给定的多个key创建字典,这些key对应的value默认都是None,也可以传入一个参数作为默认的value;
dict_1 = dict.fromkeys(["语文", "数学"])
print(dict_1)
# {'语文': None, '数学': None}
dict_2 = dict.fromkeys(("语文", "数学"))
print(dict_2)
# {'语文': None, '数学': None}
dict_3 = dict.fromkeys(("语文", "数学"), 90)
print(dict_3)
# {'语文': 90, '数学': 90}
8)setdefault() 根据key值获取相应的value值,区别在于当字典中不存在该key时,该方法会先为这个key设置一个默认的value,然后再返回该key对应的value;