python入门:第七天
1. 字典的定义
键值对
通过字典,实现通过key查找Value的操作
1.1 字典的定义
# 定义字典字面量
{key:value,key:value,key:value,key:value...}
# 定义字典变量
my_dict = {key:value,key:value,key:value,key:value...}
# 定义空字典
my_dict = {}
my_dict = dict{}
my_dict = {} 这个是定义空字典
my_set = set()这个是集合唯一定义空集合方式
对于字典来说,key的值是不能重复的,如果重复就会发生覆盖,如下:
my_dict = {'a':99,'a':85,'c':88}
print(my_dict)
# 结果为 {'a': 85, 'c': 88}
后面的会覆盖前面的
字典同集合一样,不可以使用下标索引但是可以通过key值来取得对应的Value
my_dict = {'a':99,'b':85,'c':88}
print(my_dict['a'])
# 99
print(my_dict['b'])
# 85
print(my_dict['c'])
# 88
1.2 字典的嵌套
字典的key和Value可以是任意数据类型**(key不可为字典)**
stu_score_dict = {
"A":{
"语文":77,
"数学":66,
"英语":33
}, "B":{
"语文":88,
"数学":86,
"英语":55
}, "C":{
"语文":99,
"数学":96,
"英语":66
}
}
print(stu_score_dict["A"]["语文"])
1.3 字典的常用操作
1.3.1 新增和修改
语法:字典[key] = value 字典被修改,元素值被更新。
若key不存在 则新增数据,若key存在 则修改数据
my_dict = {"a":77,"c":88}
my_dict['b'] = 99
print(my_dict)
# {'a': 77, 'c': 88, 'b': 99}
1.3.2 删除元素
语法:字典.pop(key),将key和key对应的value删除,并返回value的值
my_dict = {"a":77,"c":88,'b':66}
kew = my_dict.pop('b')
print(kew,my_dict)
# 66 {'a': 77, 'c': 88}
1.3.3 清空字典
语法:字典.clear()
1.3.4 获取全部的key
语法:字典.keys() 返回字典中所有的key
my_dict = {"a":77,"c":88,'b':66}
print(my_dict.keys())
# dict_keys(['a', 'c', 'b'])
print(type(my_dict.keys()))
# <class 'dict_keys'>
my_dict = {"a":77,"c":88,'b':66}
for i in my_dict.keys():
print(i,my_dict[i])
也可以直接不用keys()
my_dict = {"a":77,"c":88,'b':66}
for i in my_dict:
print(i,my_dict[i])
直接对字典进行for循环,每一次循环都是直接得到key
1.3.5 总结
1.4 字典特点
- 可以容纳多个数据
- 可以容纳不同类型的数据,key不能为字典
- 每一份数据都是<key :value>键值对形式
- 可以通过key获取到value,key不能重复
- 不支持下标索引
- 可以修改
- 支持for循环,不支持while循环
1.5 小测验
my_dict = {
'王力宏':{
'部门': '科技部',
'工资': 3000,
'级别': 1
},
'周杰伦':{
'部门': '市场部',
'工资': 5000,
'级别': 2
},
'林俊杰':{
'部门': '市场部',
'工资': 7000,
'级别': 3
},
'张学友':{
'部门': '科技部',
'工资': 4000,
'级别': 1
},
'刘德华':{
'部门': '市场部',
'工资': 6000,
'级别': 2
}
}
print(f"没加工资:{my_dict}")
for i in my_dict:
if(my_dict[i]['级别'] == 1):
my_dict[i]['级别'] += 1
my_dict[i]['工资'] += 1000
print(f"加完工资后:{my_dict}")
2. 数据容器的比较