11个Python3字典内置方法大全与示例汇总


Posted in Python onMay 13, 2019

概述

在绝大部分的开发语言中与实际开发过程中,Dictionary扮演着举足轻重的角色。从我们的数据模型到服务器返回的参数到数据库的应用等等,Dictionary的身影无处不在。

在Python中,Dictionary是一种可变的容器类型。所谓容器类型,就是我们放置数据的地方。不同于List的有序、操作时对数据类型统一性的要求较严格,Dictionary是一种可变的、不限存储对象、无序的数据模型。

字典有着类似列表的高灵活度的特点,而与列表通过偏移索引的存取元素的方式不同,字典是通过无序的键来存取键值对的,即字典是任意对象的无需集合,可在原处增加或减少,且支持任意深度的嵌套(即可以包含诸如列表,其他的字典等),下面就介绍了Python提供的11个字典内置方法的基本概述及简单示例。

方法 描述
clear 清除字典中所有键值对
copy 对字典进行浅拷贝,如需详细了解可以参考上上节可变对象的浅拷贝和深拷贝详解《Python列表赋值,复制,深拷贝以及5种浅拷贝详解》
fromkeys fromkeys(*args, **kwargs) 创建一个新字典,以序列的中元素做字典的键,value 为字典所有键对应的初始值
get get(self, k, d=None) 获取指定键k对应的值,如果该键不存在则返回d,默认为None 该方法可以用来判断某键是否包含在字典内
items 返回类似集合的可遍历的(键, 值) 元组列表
keys 返回类似集合的可遍历的键列表
pop 删除一个键并返回其对应的值
popitem 随机返回并删除字典中的一对键和值(一般删除末尾对),若列表为空再调用此方法会抛出KeyError异常
setdefault setdefault(self, k, d=None) 函数和 get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值
update 更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中,将键值对添加到字典中,可能是字典,也可能是键-值对序列,详见实例
values 返回类似集合的可遍历的值列表

示例代码

# dict
import copy

# 示例字典
D = {
  'name': 'Ruo Data',
  'web': {
    'site': 'https://www.ruodata.com',
    'basic': 'github'
  },
  'major': 'python'
}

print(D)

print('clear'.center(40, '-'))
# clear|清除字典中所有键值对
D1 = copy.deepcopy(D)
D1.clear()
print(D1)

print('copy'.center(40, '-'))
# copy|对字典进行浅拷贝,如需详细了解可以参考上上节可变对象的浅拷贝和深拷贝详解《Python列表赋值,复制,深拷贝以及5种浅拷贝详解》
D2 = copy.deepcopy(D)
D2_copy = D2.copy()
D2_copy['web']['articl_nums'] = 2
print(D2)

print('fromkeys'.center(40, '-'))
# fromkeys| fromkeys(*args, **kwargs) 创建一个新字典,以序列的中元素做字典的键,value 为字典所有键对应的初始值
D3 = dict.fromkeys(D)
print(D3)
D3 = dict.fromkeys(D, 'SSS')
print(D3)

print('get'.center(40, '-'))
# get| get(self, k, d=None) 获取指定键k对应的值,如果该键不存在则返回d,默认为`None` 该方法可以用来判断某键是否包含在字典内
value = D.get('name')
print(value)
# 判断键`'TEAM'`是否存在于D中:
if D.get('TEAM'):
  print(D.get('TEAM'))
else:
  print(None)

print('items'.center(40, '-'))
# items| 返回类似集合的可遍历的(键, 值) 元组列表。
items = D.items()
print(items)
# 利用items 遍历字典打印键值对:
for key, value in D.items():
  print('{}: {}'.format(key, value))

print('keys'.center(40, '-'))
# keys| 返回类似集合的可遍历的键列表
keys = D.keys()
print(keys)

print('pop'.center(40, '-'))
# pop| 删除一个键并返回其对应的值
D4 = copy.deepcopy(D)
value = D4.pop('name')
print(value)
print(D4)

print('popitem'.center(40, '-'))
# popitem| 随机返回并删除字典中的一对键和值(一般删除末尾对),若列表为空再调用此方法会抛出KeyError异常
D5 = copy.deepcopy(D)
key_value = D5.popitem()
print(key_value)
print(D5)

print('setdefault'.center(40, '-'))
# setdefault| setdefault(self, k, d=None) 函数和 get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值。
D6 = copy.deepcopy(D)
key_value = D6.setdefault('major')
print(key_value)
key_value = D6.setdefault('UNKONW_KEY', 'UNKOWN_VALUE')
print(key_value)
print(D6)

print('update'.center(40, '-'))
# update| 更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中,将e中键-值对添加到字典d中,e可能是字典,也可能是键-值对序列。详见实例。
D7 = copy.deepcopy(D)

# 传一个字典
D7.update({'three': 3, 'four': 4})
print(D7)

# 传关键字
D7.update(five=5, six=6)
print(D7)

# 传一个包含一个或多个元组的列表
D7.update([('seven', 7), ('eight', 8)])
print(D7)

# 传一个包含一个或多个列表的元组
D7.update((['nice', 9], ['ten', 10]))
print(D7)

# 传一个zip()函数
D7.update(zip(['eleven', 'twelve'], [11, 12]))
print(D7)

# 使用以上任意方法修改存在的键对应的值
D7.update(one=111, two=222)
print(D7)

print('values'.center(40, '-'))
# values| 返回类似集合的可遍历的值列表
values = D.values()
print(values)

11个Python3字典内置方法大全与示例汇总

示例结果

11个Python3字典内置方法大全与示例汇总

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
分析在Python中何种情况下需要使用断言
Apr 01 Python
Python的装饰器模式与面向切面编程详解
Jun 21 Python
python编辑用户登入界面的实现代码
Jul 16 Python
Python使用gRPC传输协议教程
Oct 16 Python
python验证身份证信息实例代码
May 06 Python
python爬虫租房信息在地图上显示的方法
May 13 Python
Django中使用 Closure Table 储存无限分级数据
Jun 06 Python
python使用flask与js进行前后台交互的例子
Jul 19 Python
python错误调试及单元文档测试过程解析
Dec 19 Python
Python3读取和写入excel表格数据的示例代码
Jun 09 Python
浅析Python 条件控制语句
Jul 15 Python
python区块链实现简版工作量证明
May 25 Python
python中的数据结构比较
May 13 #Python
Python中函数的基本定义与调用及内置函数详解
May 13 #Python
python实现弹跳小球
May 13 #Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
May 13 #Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
May 13 #Python
Python实现插入排序和选择排序的方法
May 12 #Python
Python中将两个或多个list合成一个list的方法小结
May 12 #Python
You might like
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
解析htaccess伪静态的规则
2013/06/18 PHP
php并发加锁示例
2016/10/17 PHP
thinkPHP中钩子的两种配置调用方法详解
2016/11/11 PHP
JavaScript 捕获窗口关闭事件
2009/07/26 Javascript
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
2014/02/04 Javascript
jquery高级编程的最佳实践详解
2014/03/23 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
js实现5秒倒计时重新发送短信功能
2017/02/05 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
深入理解vue Render函数
2017/07/19 Javascript
react build 后打包发布总结
2018/08/24 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
python代码制作configure文件示例
2014/07/28 Python
Python读写配置文件的方法
2015/06/03 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
2017/11/08 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
python os模块在系统管理中的应用
2020/06/22 Python
使用CSS3滤镜的filter:blur属性制作毛玻璃模糊效果的方法
2016/07/08 HTML / CSS
Jdbc数据访问技术面试题
2012/03/30 面试题
高中生活自我鉴定
2014/01/18 职场文书
歌唱比赛主持词
2014/03/18 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
创卫工作总结2015
2015/04/22 职场文书
房产电话营销开场白
2015/05/29 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
数据库连接池
2021/04/06 MySQL
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android