详解如何修改python中字典的键和值


Posted in Python onSeptember 29, 2020

我们知道python中字典是无序的,它们都是通过hash去对应的。一般的如果我们需要修改字典的值,只需要直接覆盖即可,而修改字典的键,则需要使用字典自带的pop函数,示例如下:

t = {}
t['a'] = 1
t['b'] = 2
# 修改字典的值
print('未修改前:', t)
t['b'] = 3
print('修改后: ', t)
# 修改字典的键
print('-' * 30)
print('未修改前:', t)
t['c'] = t.pop('a')
print('修改后: ', t)
"""
输出如下:
未修改前: {'a': 1, 'b': 2}
修改后: {'a': 1, 'b': 3}
------------------------------
未修改前: {'a': 1, 'b': 3}
修改后: {'b': 3, 'c': 1}
"""

Python dict字典基本操作(包括添加、修改、删除键值对)

由于字典属于可变序列,所以我们可以任意操作字典中的键值对(key-value 对)。Python 中,常见的字典操作有以下几种:
1.向现有字典中添加新的键值对。
2.修改现有字典中的键值对。
3.从现有字典中删除指定的键值对。
4.判断现有字典中是否存在指定的键值对。

初学者要牢记,字典中常常包含多个键值对,而 key 是字典的关键数据,字典的基本操作都是围绕 key 值实现的。

Python字典添加键值对

如果要为 dict 添加键值对,只需为不存在的 key 赋值即可。实现此操作的语法格式如下:

dict[key] = value

此格式中,各个参数的含义如表 1 所示。

表 1 Python 字典添加键值对语法参数

参数 含义
dict 表示字典名称。
key 表示要添加元素的键。注意,既然是添加新的元素,那么就要保证此元素的键和字典中现有元素的键互不相同。
value 表示要添加数据的值,只要是 Python 支持的数据类型就可以。

例如,下面代码演示了在现有字典 a 的基础上,添加新元素的过程:

a = {'数学':95}
print(a)
#添加新键值对
a['语文'] = 89
print(a)
#再次添加新键值对
a['英语'] = 90
print(a)

运行结果为:

{'数学': 95}
{'数学': 95, '语文': 89}
{'数学': 95, '语文': 89, '英语': 90}

Python字典修改键值对

“修改键值对”并不是同时修改某一键值对的键和值,而只是修改某一键值对中的值。

 由于在字典中,各元素的键必须是唯一的,因此,如果新添加元素的键与已存在元素的键相同,原来键所对应的值就会被新的值替换掉。例如:

a = {'数学': 95, '语文': 89, '英语': 90}
a['语文']=100
print(a)

运行结果为:

{'数学': 95, '语文': 100, '英语': 90}

可以看到,字典中没有再添加一个 {'语文':100} 键值对,而是对原有键值对 {'语文': 89} 中的值做了修改。

Python字典删除键值对

如果要删除字典中的键值对,还是可以使用 del 语句。例如:

# 使用del语句删除键值对
a = {'数学': 95, '语文': 89, '英语': 90}
del a['语文']
del a['数学']
print(a)

运行结果为:

{'英语': 90}

判断字典中是否存在指定键值对

如果要判断字典中是否存在指定键值对,首先应判断字典中是否有对应的键。判断字典是否包含指定键值对的键,可以使用 in 或 not in 运算符。

需要指出的是,对于 dict 而言,in 或 not in 运算符都是基于 key 来判断的。

例如如下代码:

a = {'数学': 95, '语文': 89, '英语': 90}
# 判断 a 中是否包含名为'数学'的key
print('数学' in a) # True
# 判断 a 是否包含名为'物理'的key
print('物理' in a) # False

运行结果为:

True
False

通过 in(或 not in)运算符,我们可以很轻易地判断出现有字典中是否包含某个键,如果存在,由于通过键可以很轻易的获取对应的值,因此很容易就能判断出字典中是否有指定的键值对。

到此这篇关于详解如何修改python中字典的键和值的文章就介绍到这了,更多相关python修改字典键和值内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Django的模型和公用函数中使用惰性翻译对象
Jul 27 Python
Python使用os模块和fileinput模块来操作文件目录
Jan 19 Python
Python探索之ModelForm代码详解
Oct 26 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
Dec 02 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
python远程连接MySQL数据库
Apr 19 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
Sep 18 Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 Python
为什么黑客都用python(123个黑客必备的Python工具)
Jan 31 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
Feb 26 Python
Python loguru日志库之高效输出控制台日志和日志记录
Mar 07 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
Apr 12 Python
提高python代码运行效率的一些建议
Sep 29 #Python
Python爬取微信小程序Charles实现过程图解
Sep 29 #Python
Python Charles抓包配置实现流程图解
Sep 29 #Python
python和node.js生成当前时间戳的示例
Sep 29 #Python
python实现图书馆抢座(自动预约)功能的示例代码
Sep 29 #Python
Python 下载Bing壁纸的示例
Sep 29 #Python
pycharm 2020 1.1的安装流程
Sep 29 #Python
You might like
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
PHP伪静态写法附代码
2008/06/20 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
JS小功能(列表页面隔行变色)简单实现
2013/11/28 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
cookie的secure属性详解
2015/04/08 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
JS返回只包含数字类型的数组实例分析
2016/12/16 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
vue不操作dom实现图片轮播的示例代码
2019/12/18 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
[01:13:18]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
深入了解Django中间件及其方法
2019/07/26 Python
深入分析python 排序
2020/08/24 Python
11月红领巾广播稿
2014/01/17 职场文书
探亲假请假条
2014/04/11 职场文书
元旦晚会活动总结
2014/07/09 职场文书
股份合作协议书
2014/09/10 职场文书
亲属关系公证书样本
2015/01/23 职场文书
上课睡觉万能检讨书
2015/02/17 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
经费申请报告范文
2015/05/18 职场文书
食堂管理制度范本
2015/08/04 职场文书
美容院员工规章制度
2015/08/05 职场文书
教师学习心得体会范文
2016/01/21 职场文书
vue router 动态路由清除方式
2022/05/25 Vue.js