三.字典 dict
# 1.字典的格式{键:键值,隔开}布尔值,列表,字典不能做为字典的KEY,同一字典中每个键都是唯一的.值可以是任意的,例:
# dict1={
# 123:"战三",
# 456:"xiaoniao",
# "zzz":[12,34,"a","b","c",["mn","xc"]],
# 444:"孙悟空",
# ("sd",123):33333
#
# }
# print(dict1)
# 2.del删除某个键值对
# dict2={
# 123:"ddd",
# 'key3':456,
# 0000:"dddd",
# (000,111):444,
# "ds":[4444,555,666,777]
# }
# print(dict2)
# # del dict2["ds"]
# # print(dict2)
# del dict2["ds"][2]
# print(dict2)
# 3.字典的迭代
# dc1={
# 123:"ee",
# 456:"aa",
# 789:"vv",
# 111:"zz"
#
# }
# for i in dc1: #默认的取出的为键值
# print(i)
# for i2 in dc1.keys():
# print(i2) #和上个循环取出的是一样的数据。
# for i3 in dc1.values():#取出来的为值
# print(i3)
# for i4,i5 in dc1.items():#可以取出来成对的键值。
# print(i4,i5)
# 4.字典的几种方法clear清空 copy浅复制,
# dc1={
# "zzz":"ee",
# 456:"aa",
# "xc":"vv",
# 111:"zz"
#
# }
# dc2=dc1.copy()
# print(dc2)
# dc1.clear()
# print(dc1)
# print(dc2)
# 5.字典的.fromkeys()根据序列创建字典,并指定统一的值,它是一个静态函数@staticmethod,可以由类名加函数名直接使用。
# d1=dict.fromkeys(["dd",134,"sz",4444,8990],"va")#不指定值“va”的时候为none
# print(d1)
# # 6.get()根据key取指定的值,如果用指定的索引来取值,不存在的话字典会报错,而get会给出默认的none,也可以在后面跟自己指定信息
# v={
# "k1":"v1",
# "k2":"v2"
# }
# print(v["k1"])#可以取出来
# #print(v["k111111"])#而不存在的值取的时候会报错
# c=v.get("k11111","这个是显示报错信息的")#用get会得到一个none的值而不代码不报错。也可以在后面跟个显示信息默认是none
# print(c)#要取的值存在的时候,逗号后面跟的信息则直接忽略掉。
# 7.pop()删除指定的某个key的值,并可以得到我们删除的那个值,如果我们删除的值不存在可以,根据后面的参数给出提示信息
# v={
# "k1":"v1",
# "k2":"v2"
# }
# v2=v.pop("k1")#可以把k1对应的键值输出给一个变量。
# v3=v.pop("k222","找不到要删除的键值")
# print(v2)
# print(v3)
#8.popitem()随机删除某个键值对。
# v = {
# "k1": "v1",
# "k2": "v2",
# "k3": "v3",
# "k4": "v4"
# }
# v2=v.popitem()#会得到一个元祖,我们可以把两个变量用逗号分割开。分别传给它们
# k1,v1=v.popitem()#会把得到键和值分别传给两个变量
# print(v2)
# print(k1,v1)
#9.setdefault()如果值存在不设置,并获取当前对应的值。如果不存在会添加新值并获取当前所对应的值
# v = {
# "k1": "v1",
# "k2": "v2",
# "k3": "v3",
# "k4": "v4"
# }
# v2=v.setdefault("k1","添加默认的值")
# print(v,v2)
# v3=v.setdefault("k5","添加默认的值")
# print(v,v3)
#10.update()更新字典里的值,也就是修改字典里的值
v = {
"k1": "v1",
"k2": "v2",
"k3": "v3",
"k4": "v4"
}
v.update({"k1":123,"k2":456})
print(v)
v.update(k3=567,k4=789)#和上面的方法得到的结果是一样的,注意用=时候,key的写法。
print(v)
#11需要掌握的几个关键.keys().values().items().get().update()