目录
一、汇总表
序号 | 功能 | 方法 |
---|---|---|
1 | 定义字典 | {key:value,key:value...} |
2 | 定义空字典 | {} 或 dict() |
3 | 通过key查找对应的value | 字典[key] |
4 | 定义嵌套字典 | key不允许是dict,value可以是 |
5 | 添加/修改元素 | 字典[key] = value |
6 | 删除元素 | pop(key) |
7 | 清空字典 | clear() |
8 | 获取全部的key | keys() |
9 | 字典的遍历 | for x in 字典 for x in 字典.keys() for x in 字典.values() |
10 | 统计字典大小 | len(字典) |
二、代码演示
"""
演示字典dict的相关操作
"""
# 1、定义字典
my_dict = {"张无忌":99,"杨过":60,"郭靖":86}
print("1、",my_dict)
# 2、定义空字典
empty_dict1 = {}
empty_dict2 = dict()
print("2、",empty_dict1)
print("2、",empty_dict2)
# 3、通过key查找对应的 value 字典[key]
score1 = my_dict["张无忌"]
score2 = my_dict["杨过"]
print(f"3、张无忌的分数是:{score1}")
print(f"3、杨过的分数是:{score2}")
# 4、定义嵌套字典
my_dict = {"王力宏":{"语文":77,"数学":66,"英语":33},
"周杰伦":{"语文":88,"数学":86,"英语":55},
"林俊杰":{"语文":99,"数学":96,"英语":66}}
print("4、学生的考试成绩信息为:",my_dict)
print("4、王力宏的数学成绩是:",my_dict["王力宏"]["数学"]) # 通过多级[]间址来找到想要的value
print("4、林俊杰的语文成绩是:",my_dict["林俊杰"]["语文"])
# 5、添加/修改元素 字典[key] = value 就可以完成添加或者元素
# 他会先检查这个key是否已存在,若存在就对其修改,若不存在则将这一对k-v加入字典
my_dict = {"张无忌":99,"杨过":60,"郭靖":86}
my_dict['王二'] = 100 # ‘王二’是不存在的key,所以会添加
print(f"5、my_dict = {my_dict}")
my_dict['张无忌'] = 100 # ”张无忌“是已存在的key,所以会对其进行修改,99->100
print(f"5、my_dict = {my_dict}")
# 6、删除元素 pop(key) 获得该key对应的value,同时将这对k-v从字典中删除
my_dict = {"张无忌":99,"杨过":60,"郭靖":86}
sc = my_dict.pop("杨过")
print(f"6、杨过的成绩被移除,他的成绩为:{sc}")
# 7、清空字典 clear()
my_dict.clear()
print(f"7、清空后my_dict = {my_dict}")
# 8、获取全部的key keys() 返回一个 <class 'dict_keys'> (应该可视为集合)
# 这个方法可以帮我们完成对字典的遍历
my_dict = {"张无忌":99,"杨过":60,"郭靖":86}
keys = my_dict.keys()
print(f"8、获取到的keys为:{keys},类型是 {type(keys)}")
# 9、字典的遍历
# (1)通过对字典的key集做for-each遍历
for key in my_dict.keys():
print(f"9.1、当前key = {key}, value = {my_dict[key]}")
# (2)直接对字典做for-each其实取出的默认就是key
for o in my_dict:
print(f"9.2、取出的元素为 {o}") # 结果取出的元素是 张无忌 杨过 郭靖
# (3) 还可以直接对值(value)集合进行遍历
for val in my_dict.values():
print(f"9.3、取出的元素为 {val}") # 结果取出的元素是 99 60 86
# 所以说这2种方法其实是等价的,取出的o就是key
# 10、统计集合大小(元素数量) len(字典)
print(f"10、my_dict = {my_dict}, 它的大小为:{len(my_dict)}")
三、执行结果