字典是一个可变容器模型,且可以存储任意类型对象。
使用键-值(key-value)存储,每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中,格式如下:
d = {key1 : value1, key2 : value2 }
直接通过方括号访问键所对应的值
实例:
dict_score = {"小红": 99, "小黄": 98, "小明": 100, "小丽": 90}
print("原成绩字典:", dict_score)
print("小黄的成绩:", dict_score["小黄"]) # 打印小黄的成绩
结果:

当访问的key不存在时,直接访问会报错,可以通过以下方式避免
方法1:通过 in 判断字典中是否存在key
方法2:通过get方法,如果key不存在,返回None,也可以自定义返回的信息
实例:
dict_score = {"小红": 99, "小黄": 98, "小明": 100, "小丽": 90}
print("原成绩字典:", dict_score)
# 当key不存在时
# 方法1 通过in判断字典是否存在键值对
if "小花" in dict_score:
print("小花的成绩:", dict_score["小花"])
else:
print("没有小花的成绩")
# 方法2 通过get判断,不存在,默认返回None,也可以自定义返回的信息
print(dict_score.get("小米", "没有小米的成绩"))
结果:

将需要修改的键重新赋值
实例:
dict_score = {"小红": 99, "小黄": 98, "小明": 100, "小丽": 90}
dict_score["小丽"] = 99 # 修改小丽的成绩
print("修改小丽成绩后的字典:", dict_score)
结果:

直接增加键值对
实例:
dict_score = {"小红": 99, "小黄": 98, "小明": 100, "小丽": 90}
print("原成绩字典:", dict_score)
dict_score["小强"] = 95 # 新增小强的成绩
print("新增成绩后的字典:", dict_score)
结果:

可以删除某个键值对或者清空字典
实例:
dict_score = {"小红": 99, "小黄": 98, "小明": 100, "小丽": 90}
print("原成绩字典:", dict_score)
del dict_score["小明"] # 删除小明
print("删除小明成绩后的字典:", dict_score)
dict_score.pop("小黄")
print("删除小黄成绩后的字典:", dict_score)
dict_score.clear() # 清空字典
print("清空字典后:", dict_score)
del dict_score # 删除字典
结果:


实例:
dict_age = {"小红": 20, "小橙": 18, "小黄": 22, "小绿": 19, "小青": 16}
dict_age2 = {"小蓝": 20, "小紫": 21}
print("原字典:", str(dict_age))
print("字典长度:", len(dict_age))
# 返回指定key的值
print(dict_age.get("小溪", "没有小溪"))
print("小黄:%s" % dict_age.get("小黄"))
dict_age.setdefault("小小", 17)
print("键不存在,添加后的字典:", dict_age)
# 浅复制
dict_age_copy = dict.copy(dict_age)
print("浅复制后的字典:", dict_age_copy)
# 以列表返回可遍历的(键, 值) 元组数组
itmes_age = dict_age.items()
print("字典列表:%s" % str(itmes_age))
# 遍历字典列表
for key, values in itmes_age:
print(key, values)
# 以列表返回一个字典所有的键
keys_age = dict_age.keys()
print("返回所有的键:% s" % keys_age)
# 以列表返回字典中的所有值
values_age = dict_age.values()
print("返回所有的值: % s" % values_age)
# 更新字典
dict_age.update(dict_age2)
print("更新后的字典:", dict_age)
# 返回并删除字典中最后一对键和值
dict_age.popitem()
print("删除最后一对键值后的字典:", dict_age)
# 删除或清空字典
dict_age.pop("小红")
print("删除小红后的字典:", dict_age)
dict_age.clear()
print("清空字典后:", dict_age)
# 创建新的字典
subject = (‘java‘, ‘python‘, ‘javascript‘)
dict_sub = dict.fromkeys(subject)
print("学科新字典1 %s" % str(dict_sub))
dict_sub = dict.fromkeys(subject, 20)
print("学科新字典2 %s" % str(dict_sub))
结果:

原文:https://www.cnblogs.com/rissa/p/14892619.html