华子目录
字典
字典是一种可变的容器,由键值对组成,值可以存储任何类型的数据,键必须是不可变数据类型。
注意:
1.字典的键是惟一的,即不能重复,但值则不必
2.值可以去任何数据类型,但键必须是不可变类型,eg:str,int,tuple
3.创建字典是如果同一个键被赋值两次,后一个值会被记住
创建字典
di = {
'小明':175,
'小川':187,
'小天':167
}
print(di)
访问字典的值
通过 变量名[键] 对值进行访问,键就相当于序列类型的下标
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
print(di['小明']) #175
print(di[12]) #[1, 2, 3]
通过键值对进行修改,添加
修改
当键值对存在时,进行修改
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
di['小明'] = 111
print(di) #{'小明': 111, '小川': 187, '小天': 167, 12: [1, 2, 3]}
添加
当键值对不存在时,进行添加
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
di['小刚'] = 190
print(di) #{'小明': 175, '小川': 187, '小天': 167, 12: [1, 2, 3], '小刚': 190}
in ,not in成员运算符
in,not in都是基于键来判断的
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
print('小明' in di) #True
字典的常用内置函数
1.get:根据键取值,如果有不存在的键值对时,会返回一个None
用法:变量名.get(键)
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
print(di.get('小明')) #175
print(di.get('小王')) #None
2.update:对存在键值对进行更新,对不存在键值对进行添加。返回值为None
用法:字典名.update(字典名)
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
di1 = {
'xiaotian':160,
'小明':190
}
di.update(di1)
print(di)#{'小明': 190, '小川': 187, '小天': 167, 12: [1, 2, 3], 'xiaotian': 160}
3.pop:通过键删除值,返回要删除的值
用法:字典名.pop(键)
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
print(di.pop('小明')) #175
print(di) #{'小川': 187, '小天': 167, 12: [1, 2, 3]}
4.del:整体删除,也可以单个删除
用法:
del 变量名 :整体删除
del 变量名[键] :单个删除
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
del di['小明']
print(di) #{'小川': 187, '小天': 167, 12: [1, 2, 3]}
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
del di
5.clear:清空字典,返回None
用法:变量名.clear()
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
di1 = di.clear()
print(di1)
items()
,keys()
,values()
items
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
di1 = di.items()
print(di1)#dict_items([('小明', 175), ('小川', 187), ('小天', 167), (12, [1, 2, 3])])
keys
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
di1 = di.keys()
print(di1) #dict_keys(['小明', '小川', '小天', 12])
print(list(di1)) #['小明', '小川', '小天', 12]
values
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
di1 = di.values()
print(di1) #dict_values([175, 187, 167, [1, 2, 3]])
print(list(di1)) #[175, 187, 167, [1, 2, 3]]
for循环进行迭代
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
for key in di: #默认是迭代键
print(key)
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
for key in di.keys(): #迭代键
print(key)
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
for key in di.values(): #迭代值
print(key)
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
for key in di.items(): #迭代键值对
print(key)
di = {
'小明':175,
'小川':187,
'小天':167,
12:[1,2,3]
}
for k,v in di.items(): #用两个变量分别接收键和值
print(k,v)