Python中的字典(dictionary)

发布时间 2023-10-31 11:15:12作者: Magiclala

首先, 字典是以键值对的形式进行存储数据的,必须有【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