linux+pycharm+anaconda
字典以键值对的形式,一种映射关系的数据类型,通过 key 来访问 value,因此字典中的 key 不允许重复
#新建
#键=值
dic={}
dic["张飞"]='男'
dic["貂蝉"]="女"
print(dic)
#键值对形式
dic={"张飞":"男","貂蝉":"女"}
print(dic)
#元祖形式
dic=(["张飞","男"],["貂蝉","女"])
print(dict(dic))
#取键
dic={"张飞":"男","貂蝉":"女"}
print(dic.keys())
#取值
print(dic.values())
#取键值对
print(dic.items())
#遍历键
dic={"张飞":"男","貂蝉":"女"}
for k in dic.keys():
print(k)
#遍历值
for v in dic.values():
print(v)
#遍历键值对
for k,v in dic.items():
print(k,v)
#添加
dic={"张飞":"男","貂蝉":"女"}
dic["周瑜"]="男"
print(dic)
#删除键值对
dic={"张飞":"男","貂蝉":"女"}
del dic["张飞"]
print(dic)
#判断字典是否包含指定的 key,则可以使用 in 或 not in 运算符,返回bool值
dic={"张飞":"男","貂蝉":"女"}
print("张飞" in dic)
#清空
dic={"张飞":"男","貂蝉":"女"}
dic.clear()
print(dic)
#get() 方法其实就是根据 key 来获取 value当使用方括号语法访问并不存在的 key 时,字典会引发 KeyError 错误
# 但如果使用 get() 方法访问不存在的 key,该方法会简单地返回 None,不会导致错误(容错率高)
dic={"张飞":"男","貂蝉":"女"}
print(dic.get("张飞"))
print(dic.get("诸葛亮"))
print(dic["诸葛亮"])
#update() 方法可使用一个字典所包含的 key-value 对来更新己有的字典
#如果被更新的字典中己包含对应的 key-value 对,那么原 value 会被覆盖,
#如果被更新的字典中不包含对应的 key-value 对,则该 key-value 对被添加进去,无返回值对字典一做修改
dic1={"张飞":"男","貂蝉":"女"}
dic2={"曹操":"男","貂蝉":"女"}
dic1.update(dic2)
print(dic1)
print(dic2)
#pop() 方法用于获取指定 key 对应的 value,并删除这个 key-value 对
dic={"曹操":"男","貂蝉":"女"}
pop=dic.pop("曹操")
print(dic)
print(pop)
#popitem() 方法用于随机弹出字典中的一个 key-value 对
"""
假随机,和列表的 pop() 方法总是弹出列表中最后一个元素,
字典的 popitem() 其实也是弹出字典中最后一个 key-value 对。
由于字典存储 key-value 对的顺序是不可知的,因此开发者感觉字典的 popitem() 方法是“随机”弹出的,
但实际上字典的 popitem() 方法总是弹出底层存储的最后一个 key-value 对。
ps(好像与寄存有关,不是太明白底层原理)
"""
dic={"曹操":"男","貂蝉":"女","刘备":"男"}
k,v=dic.popitem()
print(dic)
print(k,v)
#setdefault()根据 key 来获取对应 value 的值。
#但该方法有一个额外的功能,当获取的 key不在字典时,
# 该方法会先为这个不存在的 key 设置一个默认的 value,然后再返回该 key 对应的 value
dic={"曹操":"男","貂蝉":"女"}
#不存在时默认值生效
print(dic.setdefault("司马懿","男"))
print(dic)
#存在时默认值无效
print(dic.setdefault("曹操","女"))
print(dic)