一.字典的认识
python中的字典类型是“键:值”对的形式。字典是以花括号括起来的键值对集合,键与值用" : "分开,不同键值对用' , ' 分开。
dict = {键 : 值 , 键 : 值.............}
python中字典的键具有确定性和唯一性。确定性是键只能是不要可变数据类型,如:数值,元组,字符串。唯一性是指键名不能重复,但值可以重复。
二.字典的创建
1.使用花括号以逗号分隔“ 键:值”的方式:
dict2 = {"姓名": "张三", "年龄": "20", "性别": "男"}
print(dict2) # {'姓名': '张三', '年龄': '20', '性别': '男'}
print(type(dict2)) # <class 'dict'>
2.使用字典推导式:{},{键:值 for 迭代变量 in 可迭代对象 [if 条件表达式]}
a = {x: x ** 2 for x in range(1, 10)}
print(a) # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
3.使用dict()构建字典
a = dict([('姓名', '张三'), ('年龄', '20'), ('性别', '男')])
print(a) # {'姓名': '张三', '年龄': '20', '性别': '男'}
b = dict(a = 100,b = 300)
print(b) #{'a': 100, 'b': 300}
三.字典的访问
1.字典名[key]
对于字典而言不能够向列表和元组字符串那样用索引去访问,只能够通过键来访问。
dict2 = {"姓名": "张三", "年龄": "20", "性别": "男"}
print(dict2["姓名"]) #张三
print(dict2["年龄"]) #20
当寻找的键字典中不存在时会报“KeyError”的错误
dict2 = {"姓名": "张三", "年龄": "20", "性别": "男"}
print(dict2['1']) #KeyError: '1'
2.字典名.get(k,valu
e)
若键存在与字典里返回其值,否则返回默认值/valu
e
dict2 = {"姓名": "张三", "年龄": "20", "性别": "男"}
print(dict2.get("姓名")) # 张三
print(dict2.get("1", "不存在")) # 不存在
3.字典名.setdefault(k,value)
这个与上方的get()方法相似,但若键不存在,则将会把新的键值存到字典里
dict2 = {"姓名": "张三", "年龄": "20", "性别": "男"}
print(dict2.setdefault('2')) # None
print(dict2) # {'姓名': '张三', '年龄': '20', '性别': '男', '2': None}
print(dict2.setdefault('3', "不存在"))
print(dict2) # {'姓名': '张三', '年龄': '20', '性别': '男', '2': None, '3': '不存在'}
四.字典的维护
1.添加元素
字典元素的添加可以通过对字典的一个新键赋值来实现
字典名[new key]=new value
dict2 = {"姓名": "张三", "年龄": "20", "性别": "男"}
print(dict2) # {'姓名': '张三', '年龄': '20', '性别': '男'}
dict2["喜好"] = "篮球"
print(dict2) # {'姓名': '张三', '年龄': '20', '性别': '男', '喜好': '篮球'}
2.删除元素
1.del dict[key]删除字典里key的键值对
dict2 = {"姓名": "张三", "年龄": "20", "性别": "男"}
del dict2["性别"]
print(dict2) # {'姓名': '张三', '年龄': '20'}
2.dict.pop(key[,default])若键存在字典里返回其对应值,同时删除键值对,如果没有key返回default值
dict2 = {"姓名": "张三", "年龄": "20", "性别": "男"}
a = dict2.pop("性别")
b = dict2.pop("1", "无")
print(a) # 男
print(dict2) # {'姓名': '张三', '年龄': '20'}
print(b) # 无
print(dict2) # {'姓名': '张三', '年龄': '20'}
3.dict.clear()清空字典
dict2 = {"姓名": "张三", "年龄": "20", "性别": "男"}
dict2.clear()
print(dict2) #{}
3.修改元素
字典的修改是值通过字典的键修改对应的值
dict2 = {"姓名": "张三", "年龄": "20", "性别": "男"}
dict2["姓名"] = "wzy0537"
print(dict2) # {'姓名': 'wzy0537', '年龄': '20', '性别': '男'}
五.字典的内置函数
1.len(dict)
返回字典里键值对的个数
dict2 = {"姓名": "张三", "年龄": "20", "性别": "男"}
print(len(dict2)) # 3
2.max(dict)
返回字典里最大键所对应的值
dict3 = {"1": 3, "2": 1}
print(max(dict3)) # 2
3.min(dict)
返回字典里最小键所对应的值
dict3 = {"1": 3, "2": 1}
print(min(dict3)) # 1
4.dict.key()
返回字典中所有的键信息
dict2 = {"姓名": "张三", "年龄": "20", "性别": "男"}
print(dict2.keys()) # dict_keys(['姓名', '年龄', '性别'])
5.dict.values()
返回字典中所有的值信息
dict2 = {"姓名": "张三", "年龄": "20", "性别": "男"}
a = dict2.values()
print(a) #dict_values(['张三', '20', '男'])
for i in a:
print(i)
#张三
# 20
# 男
6.dict.items()
返回字典中所有的键值信息
dict2 = {"姓名": "张三", "年龄": "20", "性别": "男"}
a = dict2.items()
print(a) # dict_items([('姓名', '张三'), ('年龄', '20'), ('性别', '男')])
7.dict.update(dict2)
对dict键值对进行更新,将dict2的信息覆盖到dict中
dict2 = {"姓名": "张三", "年龄": "20", "性别": "男"}
dict3 = {"姓名": "李四", "年龄": "21", "性别": "男"}
a = dict2.update(dict3)
print(dict2) # {'姓名': '李四', '年龄': '21', '性别': '男'}