字典是Python中唯一实现映射关系的内置类型
创建字典
a = {"吕布": "口口布","关羽": "关习习", "刘备": "刘Baby"}
b = dict(吕布 = "口口布",关羽 = "关习习",刘备 = "刘Baby")
c = dict([("吕布","口口布"),("关羽","关习习"),("刘备","刘Baby")])
d = dict({"吕布": "口口布","关羽": "关习习", "刘备": "刘Baby"})
e = dict({"吕布": "口口布","关羽": "关习习"} ,刘备= "刘Baby"})
f = dict(zip(["吕布","关羽","刘备"],["口口布","关习习","刘Baby"]))
a == b == c == d == e ==f
增
d = dict.fromkeys("Fish",250)
print(d) == {'F':250,'i':250,'s':250,'h':250}
修改‘F’:d['F'] = 70
增加一个键值对:d['C'] = 67
删
d = dict.fromkeys("Fish",250)
d.pop('s')
d.pop("狗","没有") 若原来没有"狗",就输出“没有”
删除最后一对键值对:d.popitem()
删除指定元素:del d
删除对应的数值:d.clear
改
update()同时修改多个键值对
d = dict.fromkeys("Fish",250)
d.update({'i':105,'h':104})
或者 d.update(F='70',C='67')
查
d.get('c',"这里没有c") #若原来没有c,则返回 这里没有c
d.setdefault('c',"code") #若原来没有c对应的值,则输出code,并把code赋值给c
视图对象
视图对象:视图对象即字典的动态视图,这就意味着当字典的内容发生改变的时候,视图对象的内容也会相应地跟着改变
例:
keys = d.keys() # 保存键
values = d.values() # 保存值
items = d.items()
e = d.copy() #浅拷贝
#字典转换为列表 list(d)
#iter()迭代器
嵌套
例:
d = {"吕布":{"语文":60,"数学":70,"英语":80},"关羽":{"语文":80,"数学":90,"英语":70}}
d["吕布"]["数学"] #返回70
d = {"吕布":[60,70,80]},"关羽":[80,90,70}}
d["吕布"][1]
字典推导式
d = {'F':70,'i':105,'s':115,'h':104,'C':67}
b = {v:k for k,v in d.items()}
c = {v:k for k,v in d.items() if v > 100}
d = {x:ord(x) for x in "FishC"}
d = {x:y for x in [1,3,5] for y in [2,4,6]} #返回d为[1:6,3:6,5:6]