python中的字典是什么?
liuian 2024-11-28 00:43 55 浏览
“一起学习,一起成长!”
字典(dictionary)与列表类似,但其中元素的顺序无关紧要,因为它们不是通过像0或1的偏移量访问的。取而代之,每个元素拥有与之对应的互不相同的键(key),通过键来访问。键通常是字符串,但它还可以是Python中其他任意的不可变类型:布尔型、整型、浮点型、元组、字符串,以及其他一些在后面的内容会见到的类型。字典是可变的,因此你可以增加、删除或修改其中的键值对。
1. 使用{}创建字典
>>> empty_dict={}
>>> empty_dict
{}
>>> bierce={"day":"mostly misspent","positive":"one's voice","misfortune":"never misses"}
>>> bierce
{'day': 'mostly misspent', 'positive': "one's voice", 'misfortune': 'never misses'}
2. 使用dict()转换为字典
可以用dict()将包含双值子序列的序列转换成字典。
每个子序列的第一个元素作为键,第二个元素作为值。
>>> lol=[['a','b'],['c','d'],['e','f']]
>>> dict(lol)
{'a': 'b', 'c': 'd', 'e': 'f'}
可以对任何包含双值子序列的序列使用dict():
包含双值元组的列表:
>>> lot=[('a','b'),('b','d'),('e','f')]
>>> lot
[('a', 'b'), ('b', 'd'), ('e', 'f')]
>>> dict(lot)
{'a': 'b', 'b': 'd', 'e': 'f'}
包含双值列表的元组:
>>> tol=(['a','b'],['c','d'],['e','f'])
>>> dict(tol)
{'a': 'b', 'c': 'd', 'e': 'f'}
双字符的字符串组成的列表:
>>> los=['ab','cd','ef']
>>> dict(los)
{'a': 'b', 'c': 'd', 'e': 'f'}
双字符的字符串组成的元组:
>>> tos=('ab','cd','ef')
>>> dict(tos)
{'a': 'b', 'c': 'd', 'e': 'f'}
3. 使用[key]添加或修改元素
>>> python={}
>>> python={'a':'b','c':'d','e':'f','g':'h'}
>>> python
{'a': 'b', 'c': 'd', 'e': 'f', 'g': 'h'}
添加新键值对:
>>> python['new1']='new2'
>>> python
{'a': 'b', 'c': 'd', 'e': 'f', 'g': 'h', 'new1': 'new2'}
使用键修改值:
>>> python['new1']='new2-1'
>>> python
{'a': 'b', 'c': 'd', 'e': 'f', 'g': 'h', 'new1': 'new2-1'}
字典的键必须保证互不相同。如果创建字典时同一个键出现了两次,那么后面出现的值会取代之前的值:
>>> pythoon={'a':'b','a':'c','c':'d'}
>>> pythoon
{'a': 'c', 'c': 'd'}
4. 使用update()合并字典
使用update()可以将一个字典的键值对复制到另一个字典中去。
>>> python={'a':'b','c':'d','e':'f'}
>>> others={'age':26,'pay':'1236'}
>>> python.update(others)
>>> python
{'a': 'b', 'c': 'd', 'e': 'f', 'age': 26, 'pay': '1236'}
如果待添加的字典与待扩充的字典包含同样的键会怎么样?新归入字典的值会取代原有的值:
>>> python2={'age':89}
>>> python.update(python2)
>>> python
{'a': 'b', 'c': 'd', 'e': 'f', 'age': 89, 'pay': '1236'}
5. 使用del删除具有指定键的元素
>>> del python['age']
>>> python
{'a': 'b', 'c': 'd', 'e': 'f', 'pay': '1236'}
>>> del python['a']
>>> python
{'c': 'd', 'e': 'f', 'pay': '1236'}
6. 使用clear()删除所有元素
使用clear(),或者给字典变量重新赋值一个空字典({})可以将字典中所有元素删除:
>>> python.clear()
>>> python
{}
>>> python={}
>>> python
7. 使用in判断是否存在
如果希望判断某一个键是否存在于一个字典中,可以使用in。
>>> python={'a':'b','c':'d','e':'f'}
>>> 'a' in python
True
>>> 'f' in python
False
8. 使用[key]获取元素
这是对字典最常进行的操作,只需指定字典名和键即可获得对应的值:
>>> python['a']
'b'
如果字典中不包含指定的键,会产生一个异常:
>>> python['f']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'f'
有两种方法可以避免这种情况的发生。第一种是在访问前通过in测试键是否存在:
>>> 'f' in python
False
另一种方法是使用字典函数get():
>>> python.get('a')
'b'
反之,若键不存在,如果指定了可选值,那么get()函数将返回这个可选值:
>>> python.get('f','not in python')
'not in python'
否则,会得到None(在交互式解释器中什么也不会显示):
>>> python.get('f',None)
>>>
9. 使用keys()获取所有键
使用keys()可以获得字典中的所有键。
>>> python.keys()
dict_keys(['a', 'c', 'e'])
但在python3中,你只能自己调用list()将dict_keys转换为列表类型。
>>> list(python.keys())
['a', 'c', 'e']
在python3里,同样需要手动使用list()将values()和items()返回值转换为普通的python列表。
10. 使用values获取所有值
使用values()可以获取字典中的所有值:
>>> list(python.values())
['b', 'd', 'f']
11. 使用items()获取所有键值对
使用items()函数可以获取字典中所有的键值对:
>>> list(python.items())
[('a', 'b'), ('c', 'd'), ('e', 'f')]
12.诚邀扫描下方二维码关注公众号,一起学习,一起成长! 使用=赋值,使用copy()复制
与列表一样,对字典内容进行的修改会反映到所有与之相关联的变量名上:
>>> python={'a':'b','c':'d','e':'f'}
>>> python_new=python
>>> python_new
{'a': 'b', 'c': 'd', 'e': 'f'}
>>> python['a']='g'
>>> python
{'a': 'g', 'c': 'd', 'e': 'f'}
若想避免这种情况,可以使用copy()将字典复制到一个新的字典中:
>>> python_new1=python.copy()
>>> python_new1
{'a': 'g', 'c': 'd', 'e': 'f'}
>>> python_new1['a']='u'
>>> python_new1
{'a': 'u', 'c': 'd', 'e': 'f'}
「亲,如果笔记对您有帮助,收藏的同时,记得给点个赞、加个关注哦!感谢!」
「诚邀关注公众号“issnail”,会有惊喜哦!感谢!」
「文中代码均亲测过,若有错误之处,欢迎批评指正,一起学习,一起成长!」
参考书目:python语言及其应用
相关推荐
- 天猫积分兑换根本抢不到(2021天猫积分兑换根本抢不到)
-
因为天猫积分的东西是有限的,但是很多人想要它们。如果你想抢到它,你最好注意启动秒杀的时间,在你启动倒计时时做好准备,并立即点击交换验证码,然后点击确认。一般最慢的时间是十秒内甚至四五秒内下单,五分钟内...
- win10任务管理器未响应(win10任务管理器没反应)
-
未响应这种情况应该是:1、说明程序是正在运行,但由于是系统运行内存不足,或者病毒、垃圾等造成的系统卡顿了。2、可以尝试重启系统、杀毒、清理垃圾即可。解决方法一:双击“此电脑”我的电脑的时候,出现资源管...
-
- 新电脑装win7进不了系统(新电脑安装win7系统启动不了)
-
解决方法:1、开机按F8,选择“最好一次正确配置”尝试修复。2、开机按F8,选择“安全模式”尝试修复。3、如果方法1,2不能修复,通过系统还原或者重新安装系统修复。二、如果软件无法修复,仍然无法启动,那么就是硬件故障原因造成的。比如硬盘、主...
-
2025-12-25 21:55 liuian
-
- 台式键盘锁住了打不了字怎么解锁
-
1.找到在键盘上靠左侧的位置,有一个fn的键,按住fn键。2.然后找到键盘最上面f8的键,把fn和f8一起按住,即可完成操作。3.然后此时看到键盘已经解除锁定,就可以可以正常输入了,这样就完成了键盘的解锁操作。...
-
2025-12-25 21:05 liuian
- 怎么超频显卡(显卡怎么超频使用)
-
显卡超频犯法如下:1、首先是显卡体质的检测,如果不知道显卡的体质,盲目加电压或者频率很容易导致超频的失败,检测显卡体质需要用到软件超频和拷机软件。2、接下来是BIOS准备阶段,用户可以选择从现有显卡提...
- 自动关机怎么设置win10指令(win10设置自动关机代码)
-
1最简单的方法是通过系统自带的计划任务来设置自动开关机。2打开‘任务计划程序’,选择‘创建基本任务’,按照提示完成设置,可以选择定时执行或在特定条件下执行。3另外也可以通过第三方软件来实现自动开...
- 苹果系统修复软件(iphone修复软件)
-
牛学长苹果修复工具是一个知名的修复工具,经过多年的发展和改进,已经被广大用户验证为靠谱可信赖的工具。它具有强大的修复功能,可以解决苹果设备的各种问题,如系统崩溃、黑屏、无法开机等。该工具采用先进的技术...
- 硬盘损坏的原因(硬盘损坏严重怎么处理)
-
导致电脑硬盘坏的原因有以下几点:1、经常性的非正常关机、断电等情况都会导致硬盘出现坏块,突然停电后又马上恢复最容易引起系统故障,严重的就会让硬盘直接物理损坏。2、电压不稳定,很容易造成物理坏道。3、灰...
- win10调制解调器出现错误(window10调制解调器报告了一个错误)
-
方法一1、按下win+i组合键打开windows设置,在设置界面点击网络和internet;2、在左侧点击【拨号】按钮;3、在右侧拨号下方点击宽带链接,然后点击【高级选项】;4、打开...
-
- 台式电脑如何设置ip地址(设置台式机ip地址)
-
方法1、打开电脑的控制面板,进入设置界面。2、然后找到网络和Internet选项,点击进入。3、进入之后点击选择网络和共享中心。4、点击左侧的更改适配器设置栏。5、然后找到需要设置的网络连接,鼠标右键选择属性。6、然后双击Internet协...
-
2025-12-25 18:05 liuian
- centos系统安装教程(centos安装总结)
-
之前在线在Debian内安装Gentoo,大体步骤如下:1.mkdir/new,chroot进去正常安装新系统。2.将静态编译的busybox放到根目录。3.停掉所有服务,umount所有有关目录。...
- 不用电脑怎么恢复(不用电脑怎么恢复出厂设置)
-
操作方法01方法一:通过设置重置电脑使用快捷键Windows+A,点击所有设置,点击更新系统-恢复,重置此电脑点开始。02选择仅保留我的文件,删除应用和设置,提示窗口会显示出将被删除的应用,点击下一步...
- 最强视频播放器(2020视频播放器排行榜前十名)
-
应该是MXPlayer。他是一款安卓版上十分强悍的视频播放器,他以解码性能强、兼容性高而闻名,并且,对视频字幕的支持更是堪称一绝,支持在线匹配,对特效字幕的支持也是非常的高的。作为一款优质的手机视频播...
- 三星固态驱动官网(三星固态官方软件)
-
三星手机序列号查询官网是http://www.samsung110.com/。手机序列号(S/N号)查询方法:设置-关于手机-状态-序列号(序号)。或通过以下方式查询:通过机器包装盒上的标贴查询用...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
