首先, 字典是以键值对的形式进行存储数据的,必须有键【key】,有值【value】
字典的表示方式: {key:value, key2:value, key3:value}
举例:
dic = {"jay": "周杰伦", "金毛狮王": "谢逊"}
val = dic["金毛狮王"] # 和列表的使用区别只是把索引位置换成了key
print(val)
#运行结果
谢逊
*字典的key必须是可哈希的数据类(不可变)
dic = {[]:123}
print(dic)
#执行结果
dic = {[]:123}
^^^^^^^^
TypeError: unhashable type: 'list'
*字典的value可以是任何数据类型
dic = {"汪峰的孩子": ["孩子1", "孩子2"]}
字典的增、删、改、查
字典新增
dic = dict()#创建一个空字典
#给字典赋值'jay'和1两对儿键值
dic['jay'] = "周杰伦"
dic[1] = 123
print(dic)
#输出字典dic
{'jay': '周杰伦', 1: 123}
另一种新增方式dic.setdefault()# 设置默认值方式
这种新增方式叫做设置默认值,如果设置的key不存在,会增加一对儿键值
dic = {'jay': '周杰伦', 1: 123}
dic.setdefault("tom", "胡辣汤")
print(dic)
#运行结果
{'jay': '周杰伦', 1: 123, 'tom': '胡辣汤'}
如果该key的value值已存在,将没有任何效果
dic = {'jay': '周杰伦', 1: 123}
dic.setdefault("jay", "胡辣汤") # 设置默认值. 如果以前已经有了jay了. setdefault就不起作用了
print(dic)
#运行结果
{'jay': '周杰伦', 1: 123}
字典修改
字典中不允许有2个完全相同的key存在,当已有key存在时,就变成了value值的修改操作了
dic['jay'] = "昆凌" # 此时, 字典中已经有了jay. 此时执行的就是修改操作了
print(dic)
#执行结果
{'jay': '昆凌', 1: 123}
字典的删除
dic.pop("jay") # 根据key去删除
print(dic)
还有一种不建议的删除方法
del dic['jay']
#执行结果
{1: 123}
字典的查询
print(dic['jay'])
print(dic.get('jay'))
如果出现不存在的key,其中print(dic['jay10010'])的查询方式会报错
print(dic['jay10010']) # 如果key不存在. 程序会报错. 当你确定你的key是没问题的, 可以用
#运行结果
print(dic['jay10010']) # 如果key不存在. 程序会报错. 当你确定你的key是没问题的, 可以用
~~~^^^^^^^^^^^^
KeyError: 'jay10010'
而这种查询方式print(dic.get('jay10086'))会返回None
print(dic.get('jay10086')) # 如果key不存在. 程序返回None. 当不确定你的key的时候. 可以用
#运行结果
None