字典内置函数

1、获取字典中的特定数据

  • keys():返回字典的所有键
  • values():返回字典中所有键对应的值
  • items():返回字典的所有键值对
sorces = {"数学":101,"语文":89,"英语":98}
print(sorces.keys()) # dict_keys(['数学', '语文', '英语'])
print(sorces.values()) # dict_values([101, 89, 98])
print(sorces.items()) #dict_items([('数学', 101), ('语文', 89), ('英语', 98)])

因为python3中这几种方法的返回值并不是常见的列表或元组类型,所以不推荐直接操作这几个方法的返回值,一般使用以下两种方案

方案一:使用list()函数,将返回值转换成列表

sorces = {"数学":101,"语文":89,"英语":98}
print(list(sorces.keys())) # ['数学', '语文', '英语']
方案二:使用for循环遍历返回值

sorces = {"数学":101,"语文":89,"英语":98}
for k in sorces.keys():
	print(k)
for v in sorces.values():
	print(v)
for k,v in sorces.items():
	print(k,v)

2、copy()方法

返回一个字典的拷贝,即返回一个具有相同键值对的新字典

a = {"数学":101,"语文":89,"英语":98}
b = a.copy()
print(b)

拷贝分为深拷贝和浅拷贝

  • 深拷贝:copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象
  • 浅拷贝:拷贝父对象,不会拷贝对象的内部的子对象
1、浅拷贝
a = {1: [1,2,3]}
b = a.copy()
print(a,b) # {1: [1, 2, 3]} {1: [1, 2, 3]}
a[1].append(4)
print(a,b) # {1: [1, 2, 3, 4]} {1: [1, 2, 3, 4]}

2、深拷贝,需要引入copy模块
import copy
a = {1: [1,2,3]}
c = copy.deepcopy(a)
print(a,c) # {1: [1, 2, 3]} {1: [1, 2, 3]}
a[1].append(5)
print(a,c) # {1: [1, 2, 3, 5]} {1: [1, 2, 3]}

在这里插入图片描述

3、update()方法

可以更新字典内已有的键值对
如果被更新的字典中已包含对应的键值对,那么原value会被覆盖,如果被更新的字典中不包含对应的键值对,则该键值对被添加进去

a = {"数学":101,"语文":89,"英语":98}
a.update({"数学":150,"物理":77})
print(a) # {'数学': 150, '语文': 89, '英语': 98, '物理': 77}

4、pop()和popitem()方法

pop()用来删除指定键值对
popitem()用来随机删除一个键值对

a = {'数学': 95, '语文': 89, '英语': 90, '化学': 83, '生物': 98, '物理': 89}
a.pop("生物")
a.popitem()

5、setdefault()方法

setdefault(key, defaultvalue)
返回某个key对应的value,defaultvalue 表示默认值(可以不写,不写的话是 None)

  • 如果该 key 存在,那么defaultvalue参数无效
  • 如果该 key 不存在,那么就在字典中插入这个defaultvalue参数和键
a = {'数学': 95, '语文': 89, '英语': 90}
# 当key不存在,指定默认值
a.setdefault("物理",56)
# 当key不在,不指定默认值
a.setdefault("地理")
# 当key存在,指定默认值
a.setdefault("数学",200)
print(a) # {'数学': 95, '语文': 89, '英语': 90, '物理': 56, '地理': None}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值