字典(dict)
定义
其实和列表差不多的,都是储存各种各样的数据,但是和列表不一样的是没有下标值
特征:有键值对 => {key: value}
key值:就是键值
value值:就是数值
key值:是唯一不变而且不可重复的值(下标值:下标值是可以移动,但是key值是固定的)
value值:是可以重复的
key值和index值是一样的作用:都是标识数值的位置
思考一下,key值是不是全数据类型还是固定哪些数据类型呢?
key值是固定类型:str,number,tuple,bool
value值就是全数据类型
定义字典格式:
序列名 = {key: value}
a = {1: 1, 1.0: 1.0, "1": "1", (1): (1)}
print(a)
b = {1: "1", (3,): "3"}
print(b[(3,)])
字典方法:(增删改查)
增加与修改:
update( )
格式:
dict.update({key: value})
1. 如果输入的字典为相同key值,只会修改value,更新value值
2. 如果输入的字典没有相同key值,就会在字典后面增加输入字典的数据
a = {"name1": "陈娇", "name2": "ablabiu"}
a.update({"name3": "王正浩"})
print(a)
a.update({"name3": "梓良老师"})
print(a)
dict[key] = value (通常用测试或者学习上面,工作中经常被list混在一起)
就是update是一模一样的功能
a = {"name": "盖亚", "Age": "18"}
a["Height"] = 180
print(a)
a["Height"] = 18
print(a)
a = {1:"1",1:"2"}
print(a)
dict.setdefault( )``
dict.setdefault()
格式:
dict.setdefault(key, default=数值),数值的默认值是None(空值,空值数据类型),如果你不设置default=数值就是None
注意:如果遇到相同的key值,那么不会有任何作用
a = {1: 1, 2: 2, 3: 3}
print(a)
a.setdefault(4)
print(a)
a.setdefault(5, 5)
print(a)
删除
pop()
和列表的pop是差不多
格式:
dict.pop(key)
根据key值进行删除数值value
思考一下value删除了,那么key是否还在,value变成None =》锁不见了,钥匙还有用不
就是key和value就是一对存在,如果其中一个没有了,另一个也会消失 (夫妻锁)
a = {1: 1, 2: 2}
a.pop(1)
print(a)
a.pop(3)
print(a)
popitem()
格式:
dict.popitem()
国内说法:删除最后一个键值对=》看终结果结论,就是最后一个
官方说法:随机删除键值对 ,理解解释问题,对于无序序列来说是没有最后这个说法 =》机翻
如果后面你看一些专业是书籍:
都是随机删除键值
a = {"1": 1, (1,2): (1,2)}
a.popitem()
print(a)
del
del
和有序序列一样,也有两种写法
del 字典名 => 物理删除
del 字典名[key] =>只能删除一个数值
a = {"1": 1, "2": 2}
del a["1"]
print(a)
del a
print(a)
clear()
格式:
dict.clear()
清空数值
查询
都是序列的查询
格式:
dict[key]
通过key值查询value
补充还有一个序列查询
序列名.get(key或者index, default=None)
有两种写法:
key值存在:
如果没有default值,返回value值
如果也设置了default ,返回value值
key值不存在:
如果没有设置default,会返回None
如果设置default,会返回设置的default值
a = {"1": 1, "2": 2}
print(a.get("1"))
print(a.get("1",True))
print(a.get("3"))
print(a.get("3",False))