哈喽小伙伴们,今天咱们来复习一下Python基础中的字典,看看还记得多少!
在python中,字典是一系列键值对。每个键都与一个值相关联,你可使用键值来访问相关联的值。与键相关联的值可以是数、字符串、列表、乃至字典。其实,可以将任何python对象用作字典的值。
在python中字典放在花括号 { } 内的一系列键值对表示例如:
a = {"animal":"panda","plant":"rose","point":9}
获取与键关联的值,可以依次指定字典名或放在方括号内的值
例如提取出上述字典中的panda
a = {"animal":"panda","plant":"rose","point":9}
print(a["animal"])
运行结果
panda
字典是一种动态结构,可随时在其中添加键值对。如需添加键值对,可依次指定字典名、用方括号括起的键和相关键的值。
下列尝试在字典中添加country:China
a = {"animal":"panda","plant":"rose","point":9}
print(a)
a["country"] = "China"
print(a)
运行结果
{'animal': 'panda', 'plant': 'rose', 'point': 9}
{'animal': 'panda', 'plant': 'rose', 'point': 9, 'country': 'China'}
如果需要修改字典中的值,可以一次的指定字典名、用方括号括起的键,以及改键相关联的新值
例如我们更改上述程序的熊猫
a = {"animal":"panda","plant":"rose","point":9}
print(a)
a["animal"] = "little bear"
print(a)
# Python资料源码自取群 708525271
运行结果
{'animal': 'panda', 'plant': 'rose', 'point': 9}
{'animal': 'little bear', 'plant': 'rose', 'point': 9}
对于字典中不需要的信息,留之无用。可以使用del语句将相对应的键值进行删除。其中必须指定字典名和要删除的键。
例如删除字典a中的键"plant"及其值
a = {"animal":"panda","plant":"rose","point":9}
print(a)
del a["plant"]
print(a)
运行结果
{'animal': 'panda', 'plant': 'rose', 'point': 9}
{'animal': 'panda', 'point': 9}
使用放在方括号内的键从字典中获取感兴趣的值时,有时会因为指定的键值不存在而引发错误。
例如你想在字典a中获取里面不存在的信息将会报错
a = {"animal":"panda","plant":"rose","point":9}
print(a["color"])
运行结果
Traceback (most recent call last):
File "C:\Users\Desktop\python\03.py", line 77, in <module>
print(a["color"])
KeyError: 'color'
对于字典而言,可使用方法get()在指定的键不存在时返回一个默认值,从而避免这样的错误。
例如:
a = {"animal":"panda","plant":"rose","point":9}
b=a.get("color","no color value assigend.")
print(b)
运行结果
no color value assigend.
如果键中有color,将打印与其相关的值,如果没有,将获得指定的默认值。这里随没有键“color”但可以获得一条消息,这里不会出错。
python中一个字典可以包含几个值,同样也可以包含数百万个键值对。字典可以以各种方式存储信息,因此有多种遍历方式。可以遍历字典的键值对,也可以只遍历键或值。
遍历所有键值对:
前面介绍过,我们可以逐一的访问任意一项,但如果字典所含有成百上千对键值对,怎么办?我们可以使用for循环来遍历这个字典:
a = {"animal":"panda","plant":"rose","point":9}
for key,value in a.items():
print(f"\nkey:{key}")
print(f"value:{value}")
运行结果
key:animal
value:panda
key:plant
value:rose
key:point
value:9
要编写需要遍历for循环中,可分别声明键和值两个变量,变量名可自定义。
遍历字典中的所有键
在不使用字典中的值时,方法keys()很有用。
我们对字典所包含的值感兴趣时方法value()返回一个值的列表不包含键。
a = {"animal":"panda","plant":"rose","point":9}
print(a)
print("\n键:")
for key in a.keys():
print(key)
print("\n值:")
for value in a.values():
print(value)
运行结果
键:
animal
plant
point
值:
panda
rose
9
其实使用方法与遍历字典有很大相似性
有时候,需要将一系列字典的值存储在列表中,或者将列表作为值存储在字典中,这称为嵌套。
比如说字典存放在着一个同学的信息,但是无法存放第二个同学的信息。如何管理这群同学的信息呢?一种方法就是创建一个同学的列表,其中每个同学都是一个字典。
zhangsan = {"heigh/cm":169,"weight/kg":55,"hobby":"read"}
lisi = {"heigh/cm":175,"weight/kg":65,"hobby":"game"}
wangwu = {"heigh/cm":163,"weight/kg":57,"hobby":"dance"}
students = [zhangsan,lisi,wangwu]
for student in students:
print(student)
# Python资料源码自取群 708525271
运行结果
{'heigh/cm': 169, 'weight/kg': 55, 'hobby': 'read'}
{'heigh/cm': 175, 'weight/kg': 65, 'hobby': 'game'}
{'heigh/cm': 163, 'weight/kg': 57, 'hobby': 'dance'}
有时候,需要将列表存于字典中。例如你如何描述顾客点的鸡排呢?如果使用列表,只能存储添加的鸡排信息。但如果使用字典,就不仅仅可在其中包含的配料列表。还可以包含其他对鸡排的所有描述。
jipai = {
"辣度":["微辣","中辣","特辣"],
"番茄酱":["需要","不需要"]
}
print(jipai)
# Python资料源码自取群 708525271
运行结果
'辣度': ['微辣', '中辣', '特辣'], '番茄酱': ['需要', '不需要']}
每当字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。
可在字典中嵌套字典,但这样做,代码很快复杂起来。如果有多个网站用户,每一个的用户名都不一样。可在字典中将用户名作为键,然后将每一个用户的信息的存储在一个字典里,并将这个字典作为该用户名键的值。
user = {
"zhangsan":{
"sex":"female","hobby":"python"
},
"追风少年":{
"sex":"male","hobby":"computergames"
},
"孤独的夜":{
"sex":"male","hobby":"music"
}
}
for username,users in user.items():
print(f"\nUsername:{username}")
sex = users["sex"]
hobby = users['hobby']
print(f"\tsex:{sex}")
print(f"\thobby:{hobby}")
运行结果
Username:zhangsan
sex:female
hobby:python
Username:追风少年
sex:male
hobby:computergames
Username:孤独的夜
sex:male
hobby:music
请注意,表示每一位用户的字典的有相同的结构。虽然在python中没有这么要求,但这样会是的嵌套在字典中使用起来更方便。如果键值都不相等,那么for循环在此用起来会十分的复杂!
好了,今天的分享到这里差不多就结束了,最后给大家分享一套Python教程:
人生苦短,我用Python!
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht
华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o
我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的
本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功
前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立
2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p