字典(dict)

字典(dict)

定义

其实和列表差不多的,都是储存各种各样的数据,但是和列表不一样的是没有下标值
特征:有键值对 => {key: value}
key值:就是键值
value值:就是数值
key值:是唯一不变而且不可重复的值(下标值:下标值是可以移动,但是key值是固定的)
value值:是可以重复的
key值和index值是一样的作用:都是标识数值的位置
思考一下,key值是不是全数据类型还是固定哪些数据类型呢?
key值是固定类型:str,number,tuplebool
value值就是全数据类型
定义字典格式:
序列名 = {key: value}

# 就是数学的数值进行判断是否一样
# (1) => 1, (1): (1) => 1: 1
a = {1: 1, 1.0: 1.0, "1":  "1", (1): (1)}
print(a)


# 查找 序列名[key]
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"} # 只取最后key值的value
print(a)

dict.setdefault( )``
dict.setdefault() # set + default :输入默认值

格式:
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))
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y.湘伦ᴶᵃˠ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值