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实现哈希表
Feb 07 Python
在Python中使用模块的教程
Apr 27 Python
浅谈MySQL中的触发器
May 05 Python
详解Python3.6安装psutil模块和功能简介
May 30 Python
Python 2.7中文显示与处理方法
Jul 16 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
Python实现注册、登录小程序功能
Sep 21 Python
Django+JS 实现点击头像即可更改头像的方法示例
Dec 26 Python
wxPython电子表格功能wx.grid实例教程
Nov 19 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
Mar 06 Python
Python列表嵌套常见坑点及解决方案
Sep 30 Python
python通配符之glob模块的使用详解
Apr 24 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
随时给自己贴的图片加文字的php代码
2007/03/08 PHP
php中用foreach来操作数组的代码
2011/07/17 PHP
PHPThumb图片处理实例
2014/05/03 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
php图片添加水印例子
2016/07/20 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
JavaScript 语言基础知识点总结(思维导图)
2013/11/10 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
基于JS实现一个随机生成验证码功能
2019/05/29 Javascript
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
寻找网站后台地址的python脚本
2014/09/01 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
Django发送邮件功能实例详解
2019/09/02 Python
Python生成器常见问题及解决方案
2020/03/21 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
详解python中groupby函数通俗易懂
2020/05/14 Python
Python爬虫入门教程01之爬取豆瓣Top电影
2021/01/24 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
阿里云:Aliyun.com
2017/02/15 全球购物
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
大学新学期计划书
2014/04/28 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
2014年党小组工作总结
2014/12/20 职场文书
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python