版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
人工智能及Python应用第7章组合数据类型—智能泊车管理
1任务导入2职业能力目标3知能达标4素养提升5视野拓展6任务评价目录1任务导入返回主目录
在城市化高速推进、车辆保有量呈爆发式增长的当下,停车难题已成为社会难题。据行业调研数据显示,一线城市高峰时段停车场平均寻位耗时超过15分钟,且车位空置率高达30%,资源错配问题显著。为精准解决这个问题,某公司计划开发智能泊车管理系统,该系统集车辆无感入库登记、快速出库结算、实时车位信息查询等核心功能于一体,实现停车场资源的智能调配与高效利用。系统不仅能显著提升停车场运营效率,降低人力成本,还将为车主带来全程便捷、流畅的停车新体验,一起来编程实现吧。2职业能力目标返回主目录职业技能类别职业能力要求人工智能工程师(HCIA-AI)掌握字符串的使用掌握列表和字典的使用掌握元组和集合的使用人工智能训练师(四级)理解组合数据类型的作用“Python程序开发”技能竞赛能灵活使用不同的组合数据类型解决实际问题3知能达标返回主目录什么是组合数据类型?前面已经学习了Python中的基本数据类型,例如整数、浮点数和布尔值等。这些数据类型就像是构建“程序大楼”的一块块基石,能帮助处理各种信息。然而,在实际的应用中,仅仅依靠这些基础数据类型往往是不够的。设想一下,如果要记录一个班级学生的信息,包括姓名、年龄、成绩等,只用单个基本数据类型,可能需要为每个学生分别定义多个变量,这会使代码变得冗长且难以管理。为了解决这种问题,Python提供了组合数据类型,它允许将多个不同或相同的数据组合在一起,形成一个更复杂、更有结构的数据单元,从而更高效地处理和组织数据。其中最常见的包括字符串、列表(List)、元组(Tuple)、集合(Set)和字典(Dictionary),下面将深入探讨它们在实际编程中的使用。主要知识点字符串在生活中,我们每天都在和“字符串”打交道:发消息时输入的文字、网购时商品的名称、看视频时的弹幕评论……这些都是Python中字符串的现实缩影。它就像一个神奇的魔法口袋,能容纳文字、数字、符号。接下来,让我们一起探索Python字符串的奇妙世界吧!【知能基础】字符串
字符串是Python中最常用的数据类型之一,用于表示文本数据,字符串是由字母、符号或者数字组成的字符序列,可以用单引号('')、双引号("")或三引号(''''''或"""""")来定义。单引号和双引号基本等价,三引号常用于多行字符串。字符串介绍【示例】用不同形式的引号定义三个字符串。示例代码【知能基础】字符串str1='这是一个单引号字符串'str2="这是一个双引号字符串"str3='''这是一个多行字符串'''在Python中,转义字符用于表示那些无法直接在字符串中打印的字符,或者需要赋予特殊含义的字符。这些转义字符以反斜杠(\)开始,后跟一个或多个字符,这些跟在反斜杠后面的字符失去了原有意义,与反斜杠一起组成特殊字符,产生新的含义。转义字符【知能基础】字符串转义字符【知能基础】字符串转义字符含义说明\t制表符\n换行符\b退格符\r回车符\’单引号\”双引号【示例】使用转义字符打印输出结果。示例代码运行结果【知能基础】字符串print('let\'sgo!go!')print('hello\tworld!')print('hello\nPython!')let'sgo!go!helloworld!helloPython!
字符串索引是指在Python中通过位置来访问字符串中的单个字符。字符串中的每个字符都有一个对应的索引值。Python中有正向和反向两种索引:
正向索引:索引值从0开始,方向从左至右,依次递增。
反向索引:索引值从-1开始,方向从右至左,依次递减。字符串访问:字符串索引,访问单个字符【知能基础】字符串例如:str=“AIPython”,索引如下所示:字符串访问:字符串索引,访问单个字符【知能基础】字符串字符串访问:字符串索引,访问单个字符【知能基础】字符串格式字符串[索引]字符串索引访问的语法格式为:【示例】字符串索引访问。示例代码运行结果【知能基础】字符串str="AIPython"#访问str中的第4个字符print(str,"中第4个字符是:",str[3])#访问str中的倒数第2个字符print(str,"中倒数第2个字符是:",str[-2])AIPython中第4个字符是:pAIPython中倒数第2个字符是:o
字符串切片又叫区间索引,字符串切片是一种从字符串中提取部分字符的操作,就好像从一根长绳子(字符串)上截取一段一样。它允许根据自己的需求获取字符串中的子串。字符串访问:字符串切片【知能基础】字符串字符串切片语法格式为:字符串访问:字符串切片【知能基础】字符串格式字符串[start:end:step]start:字符串切片的起始索引,如果省略,则表示从头开始。end:字符串切片的结束索引,切片会到这个索引之前的位置结束,如果省略,则表示一直切片到结尾,且包含结尾字符。step:步长,表示每次获取字符的间隔。默认为1,正数表示正向截取,负数表示反向截取。注意:字符串切片时遵循左闭右开,即包含起始索引,不包含结束索引。【示例】字符串切片。示例代码运行结果【知能基础】字符串str="AIPython"print(str,"中前3个字符是:",str[:3])#访问str中前3个字符print(str,"中后3个字符是:",str[-3:])#访问str中后3个字符print(str,"中奇数位字符是:",str[::2])#访问str中奇数位字符print(str,"倒序输出结果是:",str[::-1])#str倒序输出AIPython中前3个字符是:AIAIPython中后3个字符是:honAIPython中奇数位字符是:AyhnAIPython倒序输出结果是:nohtypIA
字符串遍历是指逐个访问字符串中的字符,以便对每个字符进行特定的操作或检查。在Python中通常使用for循环对字符串进行遍历,语法格式为:字符串遍历【知能基础】字符串格式for循环变量in字符串:
循环语句【示例】遍历字符串。示例代码运行结果【知能基础】字符串str="Python"print("str:",str)print("遍历字符串:",end="\t")foriinstr:print(i,end="")str:Python遍历字符串: python
在Python中,%格式化字符串(占位符)是一种将变量的值插入到字符串特定位置的方法,使得大家能够创建更具动态性和定制性的输出。它允许大家将不同类型的数据(如整数、浮点数、字符串等)按照预先定义的格式规范整合到一个字符串中。格式化字符串:%格式化【知能基础】字符串语法格式为:格式化字符串:%格式化【知能基础】字符串格式“格式化字符串”%(值1,值2,…)常见的格式化符号为:%s:字符串格式化。将值转换为字符串形式。%d:整数格式化。将值格式化为十进制整数。%f:浮点数格式化。将值格式化为浮点数,默认保留小数点后六位,可以指定保留小数点位数,例如,%.2f表示保留两位小数。【示例】使用%格式化字符串。示例代码运行结果【知能基础】字符串name="范仲淹"title="《岳阳楼记》"content="先天下之忧而忧,后天下之乐而乐。"print('%s是%s的经典之作,其中最有名的一句是:%s'%(title,name,content))《岳阳楼记》是范仲淹的经典之作,其中最有名的一句是:先天下之忧而忧,后天下之乐而乐。format()方法是Python中用于字符串格式化的另一种方法,它提供了一种更加灵活和可读的方式来构建字符串。与%格式化字符串相比,format()方法使用花括号{}作为占位符,字符串中的占位符位置将被传递给format()方法的参数替换,并且可以在花括号中指定位置参数或关键字参数。格式化字符串:format()格式化【知能基础】字符串语法格式为:格式化字符串:format格式化【知能基础】字符串格式“{}”.format(值)具体情况有如下几种:
当{}中不指定任何数据,默认按照左到右的顺序将字符串中的{}逐个替换为format()方法的参数;
当{}中指定编号(位置参数)时,会按编号取format()方法中的对应参数进行替换;
当{}中指定关键字时,会按format()方法中的关键字参数值进行替换。【示例】使用format格式化字符串。示例代码【知能基础】字符串name="范仲淹"title="《岳阳楼记》"content="先天下之忧而忧,后天下之乐而乐。"#{}中不指定任何数据print("{}是{}的经典之作,其中最有名的一句是:{}".format(title,name,content))#{}中指定编号,0对应format的第一个参数,1对应第二个,以此类推print("{0}是{1}的经典之作,其中最有名的一句是:{2}".format(title,name,content))#{}中指定关键字,{}中的关键字与format的参数名字对应print("{title}是{name}的经典之作,其中最有名的一句是:{content}".format(title=title,name=name,content=content))运行结果【知能基础】字符串《岳阳楼记》是范仲淹的经典之作,其中最有名的一句是:先天下之忧而忧,后天下之乐而乐。《岳阳楼记》是范仲淹的经典之作,其中最有名的一句是:先天下之忧而忧,后天下之乐而乐。《岳阳楼记》是范仲淹的经典之作,其中最有名的一句是:先天下之忧而忧,后天下之乐而乐。
在Python的字符串格式化方法中,f-string是一种简洁且强大的工具。它从Python3.6开始引入,让字符串格式化变得更加直观和高效,能够方便地将变量的值嵌入到字符串中。格式化字符串:f-string格式化【知能基础】字符串语法格式为:格式化字符串:f-string格式化【知能基础】字符串格式f'{变量名或表达式}'或F'{变量名或表达式}'Python会自动获取{}中的变量值或计算表达式的值,并将其转换为字符串后插入到字符串的对应的{}所在的位置。【示例】使用f-string格式化字符串。示例代码运行结果【知能基础】字符串name="范仲淹"title="《岳阳楼记》"content="先天下之忧而忧,后天下之乐而乐。"#使用f-string方式print(f"{title}是{name}的经典之作,其中最有名的一句是:{content}")《岳阳楼记》是范仲淹的经典之作,其中最有名的一句是:先天下之忧而忧,后天下之乐而乐。Python中提供了实现字符串查找的find()方法,该方法可查找字符串中是否包含子串,若包含则返回子串首次出现的位置,否则返回-1,使用语法格式为:字符串常用方法:字符串查找【知能基础】字符串格式字符串.find(子字符串[,start[,end]])【示例】字符串查找。示例代码【知能基础】字符串str="helloAIPython"#从字符串str中查找是否存在子串hello,如果存在,则返回第一个hello的索引起始位置print("AI","在",str,"中的位置是:",str.find("AI"))#从字符串str查找是否存在子串,如果不存在,则返回-1print("人工智能","在",str,"中的位置是:",str.find("人工智能"))运行结果【知能基础】字符串AI在helloAIPython中的位置是:6人工智能
在helloAIPython中的位置是:-1Python中提供了实现字符串替换的replace()方法,该方法可将当前字符串中的指定子串替换成新的子串,并返回替换后的新字符串,语法格式为:字符串常用方法:字符串替换【知能基础】字符串格式字符串.replace(old,new[,count])【示例】字符串替换。示例代码运行结果【知能基础】字符串str="helloAIPython"print("替换前:",str)#将str中的AI替换成“人工智能”print("替换后:",str.replace("AI","人工智能"))替换前:helloAIPython替换后:hello人工智能PythonPython中提供了实现字符串分割的split()方法,该方法可以按照指定分隔符对字符串进行分割,并返回由分割后的子串组成的列表,语法格式为:字符串常用方法:字符串分割【知能基础】字符串格式字符串.split(sep=None,maxsplit=-1)【示例】字符串分割。示例代码运行结果【知能基础】字符串str="helloAIPython"print("分割前:",str)#使用空格对str进行分割print("分割后:",str.split(sep=""))分割前:helloAIPython分割后:['hello','AI','Python']Python中的字符串拼接有运算符“+”和join两种方法。:字符串常用方法:字符串拼接【知能基础】字符串格式字符串1+字符串2+…+字符串n格式字符串.join(iterable)运算符“+”:join:【示例】字符串拼接。示例代码【知能基础】字符串str1="hello"str2="AIPython"str3="-"print("str1:",str1)print("str2:",str2)print("str3:",str2)#使用+将str1和str2拼接print("str和str2使用+拼接:",str1+str2)#使用join将str3和str1拼接,str3作为str1中各个字符的分隔符print("str3和str1使用join拼接:",str3.join(str1))运行结果【知能基础】字符串str1:hellostr2:AIPythonstr3:AIPythonstr和str2使用+拼接:helloAIPythonstr3和str1使用join拼接:h-e-l-l-o字符串常用方法:字符串中空格处理方法【知能进阶】字符串方法功能说明strip()删除字符串首尾两端的空格lstrip()删除字符串头部的空格rstrip()删除字符串尾部的空格字符串常用方法:字符串中大小写转换方法【知能进阶】字符串方法功能说明upper()字符串中小写字母转大写lower()字符串中大写字母转小写capitalize()字符串中首字母转大写title()字符串中每个单词的首字母转大写字符串常用方法:字符串中数字、字母检测方法【知能基础】字符串方法功能说明isnumeric()检测字符串是否只由数字组成,是返回True,否则返回Falseisalpha()检测字符串是否只由字母组成,是返回True,否则返回Falseislower()检测字符串中的所有字母是否都为小写,是返回True,否则返回Falseisupper()检测字符串中的所有字母是否都为大写,是返回True,否则返回False列表在Python中,列表(List)是一种非常重要且常用的数据结构,列表使用中括号[]来表示,允许大家存储多个不同类型的元素,并对这些元素进行高效的操作与管理。列表提供了灵活的方式来组织和处理数据,无论是简单的数据组合,还是复杂的数据序列,都能通过列表来表示和操作。列表的创建
在Python中可以使用直接方式、list()方法和推导式三种方式来创建列表。【知能基础】列表格式[element1,element2,...]格式list(iterable)
其中element1、element2等是列表中的元素,可以是任意数据类型。
其中,list是内置函数,iterable是一个可迭代对象,如字符串、元组、集合等,list函数会将可迭代对象转换为列表。直接方式:list方法:列表的创建【知能进阶】列表格式[f(x)forxiniterable[if条件]]推导式:
以函数值f(x)为元素创建列表,其中x为可迭代序列iterable中满足条件的元素,缺省条件则为所有元素。【示例】不同方式创建列表。示例代码【知能基础】列表#直接创建列表list1=[1,2,3,4,5]#使用list方法创建列表list2=list(range(1,6))#使用推导式创建列表list3=[iforiinrange(1,6)]print("list1:",list1)print("list2:",list2)print("list3:",list3)运行结果【知能基础】列表list1:[1,2,3,4,5]list2:[1,2,3,4,5]list3:[1,2,3,4,5]访问列表元素:索引访问
在Python列表中,每个元素都有一个对应的索引,通过索引可以直接访问列表中的元素,语法格式为:【知能基础】列表格式list[index]
其中,list是列表的名称,index是要访问元素的索引,列表有正向索引(从0开始,从左至右递增)和反向索引(从-1开始,从右至左递减)【示例】列表索引访问。示例代码运行结果【知能基础】列表animals=["dog","cat","bird","pig"]print("列表:",animals)#访问第一个元素print("第一个元素是:",animals[0])#访问最后一个元素print("最后一个元素是:",animals[-1])列表:['dog','cat','bird','pig']第一个元素是:dog最后一个元素是:pig访问列表元素:切片
切片可以获取列表中部分元素,它可以返回一个包含指定范围内元素的新列表,语法格式为:【知能基础】列表格式list[start:stop:step]
start:切片的起始索引(包含),如果省略则默认为0。
stop:切片的结束索引(不包含),如果省略则默认为列表的长度。
step:步长,即相邻元素之间的间隔,如果省略则默认为1。【示例】列表切片。示例代码运行结果【知能基础】列表animals=["dog","cat","bird","pig"]print("列表:",animals)#获取前两个元素print("前两个元素是:",animals[:2])#获取最后两个元素print("最后两个元素是:",animals[-2:])列表:['dog','cat','bird','pig']前两个元素是:['dog','cat']最后两个元素是:['bird','pig']访问列表元素:遍历
使用循环可以访问列表中的每一个元素,通常使用for循环对列表进行遍历,语法格式为:【知能基础】列表格式for循环变量in列表:
循环语句【示例】列表遍历。示例代码运行结果【知能基础】列表animals=["dog","cat","bird","pig"]print("列表:",animals)#遍历列表print("列表遍历结果是:",end="\t")foriinanimals:print(i,end='')列表:['dog','cat','bird','pig']列表遍历结果是: dogcatbirdpig添加列表元素:append()向列表末尾添加一个元素,语法格式为:【知能基础】列表格式list.append(element)【示例】使用append添加列表元素。示例代码运行结果【知能基础】列表#添加列表元素-append#创建一个初始列表animals=["dog","cat"]print("添加前:",animals)#使用append()方法添加元素animals.append("bird")print("添加后:",animals)添加前:['dog','cat']添加后:['dog','cat','bird']添加列表元素:insert()
在列表的指定位置插入一个元素,指定位置及之后的元素向后移动一位,语法格式为:【知能基础】列表格式list.insert(index,element)【示例】使用insert添加列表元素。示例代码运行结果【知能基础】列表#添加列表元素-insert#创建一个初始列表animals=["dog","cat"]print("添加前:",animals)#使用insert()方法添加元素animals.insert(1,"bird")print("添加后:",animals)添加前:['dog','cat']添加后:['dog','bird','cat']添加列表元素:extend()
将一个可迭代对象(如列表、元组等)中的所有元素添加到另一个列表的末尾,语法格式为:【知能基础】列表格式list.extend(iterable)【示例】使用extend添加列表元素。示例代码运行结果【知能基础】列表#添加列表元素-extend#创建一个初始列表animals=["dog","cat"]print("添加前:",animals)#使用extend()方法添加元素animals.extend(['bird','pig'])print("添加后:",animals)添加前:['dog','cat']添加后:['dog','cat','bird','pig']删除列表元素:remove()
从列表中删除第一个匹配指定值的元素,如果列表中不存在该元素,则会引发ValueError异常,语法格式为:【知能基础】列表格式list.remove(element)【示例】使用remove删除列表元素。示例代码运行结果【知能基础】列表#remove使用#创建一个初始列表animals=["dog","cat","bird","pig"]print("移除前:",animals)#使用remove删除列表中的cat元素animals.remove("cat")print("移除后:",animals)移除前:['dog','cat','bird','pig']移除后:['dog','bird','pig']删除列表元素:pop()删除并返回列表中指定索引位置的元素。如果不指定索引,默认删除并返回列表的最后一个元素,语法格式为:【知能基础】列表格式list.pop([index])【示例】使用pop删除列表元素。示例代码运行结果【知能基础】列表#pop使用#创建一个初始列表animals=["dog","cat","bird","pig"]print("删除前:",animals)#使用pop删除列表中的第2个元素animal=animals.pop(1)print("删除后:",animals)print("被删除的元素是:",animal)删除前:['dog','cat','bird','pig']删除后:['dog','bird','pig']被删除的元素是:cat删除列表元素:del语句
用于删除列表中的单个元素或一个切片(多个元素)。它直接作用于列表,不会返回被删除的元素,语法格式为:【知能基础】列表格式dellist[index]或dellist[start:stop:step]【示例】使用del语句删除列表元素。示例代码运行结果【知能基础】列表#del使用#创建一个初始列表animals=["dog","cat","bird","pig"]print("删除前:",animals)#使用del语句删除列表中的第2个元素delanimals[1]print("删除后:",animals)删除前:['dog','cat','bird','pig']删除后:['dog','bird','pig']
删除列表元素:clear()clear()可以清空列表中所有的元素,语法格式为:【知能基础】列表格式list.clear()【示例】使用clear删除列表元素。示例代码运行结果【知能基础】列表#clear使用#创建一个初始列表animals=["dog","cat","bird","pig"]print("清空前:",animals)#使用clear清空列表animals.clear()#查看清空后的列表print("清空后:",animals)清空前:['dog','cat','bird','pig']清空后:[]
列表的嵌套
在Python中,列表可以包含各种类型的数据,包括其他列表,这种一个列表中包含其他列表的结构被称为列表嵌套。列表嵌套提供了一种强大的方式来组织和处理复杂的数据结构。
要访问嵌套列表中的元素,需要使用多个索引。索引从外向内依次指定,外层列表的索引访问到内层列表,再通过内层列表的索引访问具体元素。【知能基础】列表【示例】列表嵌套。示例代码运行结果【知能基础】列表#创建青年榜样事迹列表(姓名,事迹,精神内涵)historical_heroes=[['林觉民','《与妻书》','家国情怀'],['方志敏','《可爱的中国》','革命理想'],['黄文秀','扶贫支教','奉献精神']]print("新时代青年榜样:")forheroinhistorical_heroes:print(f"{hero}:以{hero}书写人生")#访问方志敏的革命精神print('\n《可爱的中国》传递的:',historical_heroes)新时代青年榜样:['林觉民','《与妻书》','家国情怀']:以['林觉民','《与妻书》','家国情怀']书写人生['方志敏','《可爱的中国》','革命理想']:以['方志敏','《可爱的中国》','革命理想']书写人生['黄文秀','扶贫支教','奉献精神']:以['黄文秀','扶贫支教','奉献精神']书写人生《可爱的中国》传递的:[['林觉民','《与妻书》','家国情怀'],['方志敏','《可爱的中国》','革命理想'],['黄文秀','扶贫支教','奉献精神']]元组
元组(Tuple)是Python中是一种重要的数据结构,它与列表有相似之处,但也具有其独特的性质。元组用于存储多个元素的有序集合,并且一旦创建,其内容是不可变的。元组的创建:直接创建使用小括号()可以直接创建元组,元素之间用逗号‘,’分割,语法格式为:【知能基础】元组格式(element1,element2,element3,...)元组的创建:tuple()使用内置函数tuple可以将一个可迭代对象转成元组。【知能基础】元组格式tuple(iterable)【示例】使用不同方式创建元组。示例代码运行结果【知能基础】元组#直接创建元组tuple1=(1,2,3,4,5)#tuple()方法创建元组tuple2=tuple(range(1,6))print('tuple1:',tuple1)print('tuple2:',tuple2)tuple1:(1,2,3,4,5)tuple2:(1,2,3,4,5)元组访问【知能基础】元组
元组中的访问与列表访问一致,可以通过索引来进行单个访问,也可以使用切片进行多个元素访问。【示例】元组访问。示例代码【知能基础】元组animals=("dog","cat","bird","pig")print("元组:",animals)#访问第一个元素print("第一个元素是:",animals[0])#访问最后一个元素print("最后一个元素是:",animals[-1])#获取前两个元素print("前两个元素是:",animals[:2])#获取最后两个元素print("最后两个元素是:",animals[-3:])运行结果【知能基础】元组元组:('dog','cat','bird','pig')第一个元素是:dog最后一个元素是:pig前两个元素是:('dog','cat')最后两个元素是:('cat','bird','pig')元组的不可变性【知能基础】元组
元组一旦创建,其元素不能被修改、删除或添加,如果需要对元组进行添加、修改或删除,一般需先将元组转成列表,对列表进行相应的操作后,再将列表转成元组。【示例】元组不可变性。示例代码【知能基础】元组animals_tuple=("dog","cat","bird")print("元组:",animals_tuple)#1.将元组转成列表animals_list=list(animals_tuple)#2.向animals_list中添加元素animals_list.append('pig')#3.将animals_list转成元组animals_tuple=tuple(animals_list)print('添加完元素后的元组:',animals_tuple)运行结果【知能基础】元组元组:('dog','cat','bird')添加完元素后的元组:('dog','cat','bird','pig')集合
集合是一个无序的、不包含重复元素的数据结构,它主要用于数学上的集合运算,如并集、交集、差集等。在Python中,集合使用花括号{}表示,元素之间用逗号分隔。元组的创建:直接创建使用花括号{}直接创建,语法格式为:【知能基础】集合格式{element1,element2,...}集合的创建:set()使用内置函数set可以将一个可迭代对象转成集合,语法格式为:【知能基础】集合格式set(iterable)注意,空集合必须使用set()函数创建,因为{}表示的是空字典。【示例】不同方式创建集合。示例代码运行结果【知能基础】集合#使用{}创建集合my_set1={1,2,3,4,2,3}#使用set()创建集合my_set2=set([1,2,3,4])print("my_set1:",my_set1)print("my_set2:",my_set2)my_set1:{1,2,3,4}my_set2:{1,2,3,4}集合的基本操作(1)添加元素:使用add()方法向集合中添加单个元素。(2)删除元素:
使用remove()方法删除指定元素,如果指定的元素不存在,会报KeyError。
discard()方法删除指定元素,元素不存在时不会引发错误。
pop()方法随机删除并返回集合中的一个元素(因为集合无序)。(3)遍历集合:使用for循环可以遍历集合中的元素。由于集合无序,所以遍历顺
序是不确定的,但能保证每个元素被访问一次。【知能基础】集合【示例】集合基本操作。示例代码【知能基础】集合my_set={"dog","cat","bird"}print("my_set:",my_set)my_set.add("pig")#使用add()添加元素print("添加后的my_set:",my_set)print("for循环遍历集合:",end="\t")foriinmy_set:print(i,end="")print()#换行my_set.remove("dog")#使用remove()删除指定元素print("remove删除元素后的my_set:",my_set)my_set.discard("pig")#使用discard()删除指定元素print("discard删除元素后的my_set:",my_set)my_set.pop()#使用pop()删除元素print("pop删除元素后的my_set:",my_set)运行结果【知能基础】集合my_set:{'bird','dog','cat'}添加后的my_set:{'pig','bird','dog','cat'}for循环遍历集合: pigbirddogcatremove删除元素后的my_set:{'pig','bird','cat'}discard删除元素后的my_set:{'bird','cat'}pop删除元素后的my_set:{'cat'}集合的数学运算Python中的集合与数学上的集合概念基本一致,可以对集合对象进行并集、交集、差集等集合运算。(1)并集:使用|运算符或union()方法获取两个集合的并集。(2)交集:使用&运算符或intersection()方法获取两个集合的交集。(3)差集:使用-运算符或difference()方法获取两个集合的差集。【知能进阶】集合【示例】集合数学运算。示例代码【知能进阶】集合my_set1={1,3,4,5}my_set2={2,4,5,7}print("my_set1:",my_set1)print("my_set2:",my_set2)#两个集合的并集print("两个集合的并集:",my_set1|my_set2)#两个集合的交集print("两个集合的交集:",my_set1&my_set2)#两个集合的差集print("两个集合的差集:",my_set1-my_set2)运行结果【知能进阶】集合my_set1:{1,3,4,5}my_set2:{2,4,5,7}两个集合的并集:{1,2,3,4,5,7}两个集合的交集:{4,5}两个集合的差集:{1,3}字典提到“字典”这个词相信大家都不会陌生,学生时期碰到不认识的汉字时,大家都会使用新华字典的部首表查找对应的汉字。Python中的字典数据与学生使用的字典有类似的功能,它以“键值对”的形式组织数据,利用“键”快速查找“值”。字典(dict)是一种可变的、无序的键值对数据结构,它可以高效地存储和检索数据,通过键(key)来访问对应的值(value)。让我们一起来学习吧!字典介绍
字典相当于保存了两组数据,其中一组数据是关键数据,被称为key;另一组数据可通过key来访问,被称为value。由于字典中的key是非常关键的数据,而且程序需要通过key来访问value,因此字典中的key不允许重复。
字典的表现形式为一组包含在大括号“{}”中的键值对,每个键值对为一个字典元素,每个元素通过逗号“,”分隔,每对键值通过“:”分隔,具体格式为:{键1:值1,键2:值2,...,键n:值n}
字典的值可以是任意类型,字典键必须是不可变且唯一,字典的键值对是无序的。【知能基础】字典字典的创建:{}方式可以直接使用花括号{}来创建字典,语法格式为:【知能基础】字典格式{key1:value1,key2:value2,...}【示例】使用{}创建字典。示例代码运行结果【知能基础】字典student={'name':'李华','age':18,"height":1.75}#使用花括号{}创建字典print("花括号{}创建字典student:",student)花括号{}创建字典student:{'name':'李华','age':18,'height':1.75}字典的创建:dict()
通过内置函数dict()创建字典,需要通过传递键值对序列(如列表元组),语法格式为:【知能基础】字典格式dict(iterable)【示例】使用dict()创建字典。示例代码运行结果【知能基础】字典student_info=[('name','李华'),('age',20),('height',1.75)]#使用dict()方法创建字典student=dict(student_info)print("dict()方法创建字典student:",student)dict()方法创建字典student:{'name':'李华','age':20,'height':1.75}字典的访问:通过键(key)访问值
在字典中,键是唯一的标识符,用于获取与之关联的值,使用“字典[键]”来访问值。注意:如果使用不存在的键来访问字典,会引发KeyError异常,语法格式为:【知能基础】字典格式dict[key]【示例】通过键(key)访问字典的值(value)。示例代码运行结果【知能基础】字典student={'name':'李华','age':18,"height":1.75}print('字典student:',student)#通过键访问值print("name对应的值是:",student['name'])字典student:{'name':'李华','age':18,'height':1.75}name对应的值是:李华字典的访问:使用get()方法访问值get()方法是字典提供的一种更安全的访问值的方式。它接受键作为参数,返回与该键关联的值。如果键不存在,它不会引发KeyError,而是返回None,也可以指定一个自定义的默认值,语法格式为:【知能基础】字典格式dict.get(key,default)【示例】使用get()方法访问字典的值(value)。示例代码运行结果【知能基础】字典student={'name':'李华','age':18,"height":1.75}print('字典student:',student)#通过get()方法访问值print("name对应的值是:",student.get('name'))#当键不存在时,返回Noneprint('grade对应的值是:',student.get('grade'))#设置默认值,当键不存在时,返回默认值print('grade对应的值是:',student.get('grade',"大一"))字典student:{'name':'李华','age':18,'height':1.75}name对应的值是:李华grade对应的值是:Nonegrade对应的值是:大一字典的遍历:遍历键
通过keys()方法可以获得字典的key的集合,然后使用for循环进行遍历,语法格式为:【知能基础】字典格式forkeyindict.keys():
遍历代码【示例】遍历字典的键。示例代码运行结果【知能基础】字典student={'name':'李华','age':18,"height":1.75}print('字典student:',student)#遍历字典的键print("字典student的键:",end="")forkeyinstudent.keys():print(key,end="")字典student:{'name':'李华','age':18,'height':1.75}字典student的键:nameageheight字典的遍历:遍历值
通过values()方法可以获得字典的value的集合,然后使用for循环进行遍历,语法格式为:【知能基础】字典格式forvalueindict.values():
遍历代码【示例】遍历字典的值。示例代码运行结果【知能基础】字典student={'name':'李华','age':18,"height":1.75}print('字典student:',student)#遍历字典的值print("字典student的值:",end="")forvalueinstudent.values():print(value,end="")字典student:{'name':'李华','age':18,'height':1.75}字典student的值:
李华181.75字典的遍历:遍历元素(键值对)
通过items()方法可以获得字典的键值对的集合,然后使用for循环进行遍历,语法格式为:【知能基础】字典格式forkey,valueindict.items():
遍历代码【示例】遍历字典的键值对。示例代码运行结果【知能基础】字典student={'name':'李华','age':18,"height":1.75}print('字典student:',student)#遍历字典的键值对print("字典student的键值对:")forkey,valueinstudent.items():print(key,":",value)字典student:{'name':'李华','age':18,'height':1.75}字典student的键值对:name:李华age:18height:1.75字典元素的添加和修改
字典元素的添加和修改操作相同,可以使用对键赋值或者update()方法添加和修改元素,在使用对键赋值或update()方法时,如果键已经在字典中存在,则实际上是对该键对应的值进行修改;如果键不存在,则在字典中添加相应的键值对。【知能基础】字典
字典元素的添加和修改:对键赋值【知能基础】字典对键赋值的语法格式为:格式dict[key]=value【示例】对键赋值。示例代码运行结果【知能基础】字典student={'name':'李华','age':18,"height":1.75}print('字典student:',student)#当key不存在时,添加键值对student['grade']="大一"print("添加键值对:",student)#当key存在时,修改键对应的值student['age']=19print("修改键值对:",student)字典student:{'name':'李华','age':18,'height':1.75}添加键值对:{'name':'李华','age':18,'height':1.75,'grade':'大一'}修改键值对:{'name':'李华','age':19,'height':1.75,'grade':'大一'}字典元素的添加和修改:update()【知能基础】字典update方法的语法格式为:格式dict.update(key=value)【示例】使用update更新键值对。示例代码运行结果【知能基础】字典student={'name':'李华','age':18,"height":1.75}print('字典student:',student)#当key不存在时,添加键值对student.update(grade="大一")print("添加键值对:",student)#当key存在时,修改键对应的值student.update(age=19)print("修改键值对:",student)字典student:{'name':'李华','age':18,'height':1.75}添加键值对:{'name':'李华','age':18,'height':1.75,'grade':'大一'}修改键值对:{'name':'李华','age':19,'height':1.75,'grade':'大一'}字典元素的删除:del语句【知能基础】字典del语句可以通过指定要删除的键来删除对应的键值对。注意,如果删除字典中不存在的键,将会引发KeyError异常,语法格式为:格式deldict['key']【示例】使用del删除字典元素。示例代码运行结果【知能基础】字典student={'name':'李华','age':18,'height':1.75,'grade':'大一'}print('字典student:',student)#使用del语句删除元素delstudent['grade']print('del语句删除grade后的结果为:',student)字典student:{'name':'李华','age':18,'height':1.75,'grade':'大一'}del语句删除grade后的结果为:{'name':'李华','age':18,'height':1.75}字典元素的删除:pop()【知能基础】字典
删除字典中指定键的键值对,并返回被删除的值。如果指定的键不存在,它可以返回一个默认值,而不会发生异常,语法格式为:格式dict.pop(key,default)【示例】使用pop删除字典字段的元素。示例代码运行结果【知能基础】字典student={'name':'李华','age':18,'height':1.75,'grade':'大一'}print('字典student:',student)#使用pop方法删除存在的keygrade=student.pop('grade')print('删除的key:grade,值为:',grade)print('删除后的字典student:',student)#使用pop删除不存在的key,指定默认值sex=student.pop('sex','未提供性别')print('删除的key:sex,值为:',sex)字典student:{'name':'李华','age':18,'height':1.75,'grade':'大一'}删除的key:grade,值为:大一删除后的字典student:{'name':'李华','age':18,'height':1.75}删除的key:sex,值为:未提供性别字典元素的删除:popitem()【知能基础】字典
随机删除字典中的一个键值对,并以元组的形式返回该键值对。Python3.7及以后的版本中,通常会删除并返回字典中的最后一个键值对,语法格式为:格式dict.popitem()【示例】使用popitem删除字典元素。示例代码运行结果【知能基础】字典student={'name':'李华','age':18,'height':1.75,'grade':'大一'}print('字典student:',student)#使用popitem随机删除键值对item=student.popitem()print('删除的键值对为:',item)print('删除后的student:',student)字典student:{'name':'李华','age':18,'height':1.75,'grade':'大一'}删除的键值对为:('grade','大一')删除后的student:{'name':'李华','age':18,'height':1.75}字典元素的删除:clear()【知能基础】字典删除字典中的所有元素,使字典变为空字典,语法格式为:格式dict.clear()【示例】使用clear删除字典元素。示例代码运行结果【知能基础】字典student={'name':'李华','age':18,'height':1.75,'grade':'大一'}print('字典student:',student)#使用clear删除字典所有元素student.clear()print("clear清空后的student:",student)字典student:{'name':'李华','age':18,'height':1.75,'grade':'大一'}clear清空后的student:{}4素养提升返回主目录【任务实践】智能泊车管理
小张负责开发一个智能泊车管理系统,能够记录车子入库、出库以及查看车库停车情况等信息,功能菜单如下:任务描述【任务实践】智能泊车管理任务描述
(1)车辆入库:用户根据提示“请输入入库的车牌号码:”和“请输入车主姓名:”分别输入车牌号码、车主姓名,入库时间为系统当前世家你,输入完成后,将车辆信息添加到存放车辆信息的字典中,并提示“入库成功”。注意,若输入的车牌号码为空会提示“请输入正确车牌号码”。
(2)查看停车信息:打印车库中所有已停车辆的信息在控制台。若车库中还没有车辆入库,提示“无停车信息”。
(3)车辆出库:用户根据提示“请输入出库的车牌号码:”,若该车辆存在于车库字典中,显示该车及出库信息,并将该车辆信息从字典中删除,否则提示“该车牌号码不存在”。
(4)退出:退出智能泊车管理。【任务实践】智能泊车管理任务实施(1)创建项目名为【parking】,在该项目中新建Python文件【intelligent_parking.py】,在项目文件中导入datetime库,创建一个空字典,该字典用来存储所有入库的车子信息,其中车牌号码作为key,其他信息放在一个列表中作为字典的value;创建一个空列表,用来存放入库车辆的除车牌号码外的其它信息。fromdatetimeimportdatetime#车库字典,存放所有车子的入库信息#key是车牌号码,value是一个存放车主名字、入库时间信息的列表car_dict={}#存放入库车子的车主和入库时间信息car_info=[]【任务实践】智能泊车管理(2)在控制台输出智能泊车管理的功能菜单。print("*"*20)print('欢迎使用智能泊车管理系统:')print("1.车辆入库")print("2.查看停车信息")print("3.车辆出库")print("4.退出")print("*"*20)【任务实践】智能泊车管理(3)使用循环,在循环中接收用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年机场客梯车操作与维护保养规程
- 2026年多动症倾向幼儿家庭教育干预
- 2026年发电机租赁市场报价与合同模板
- 2026年精神科门诊预检分诊工作制度
- 2026年深度学习在图像识别中的实践应用
- 金色降落伞项目合作意向书
- 2026届高考作文话题预测及主题素:科技与人类
- 控制系统项目咨询与评估协议
- 健身房设备维修服务协议
- 2026年室内装饰装修防白蚁施工方案及流程
- 2026年山东省济南槐荫区九年级中考物理二模考试试题(含答案)
- 2026-2030中国压缩空气储能行业竞争格局与投资可行性战略规划研究报告
- 2026中国移动通信集团海南有限公司第一期社会招聘3人笔试备考试题及答案解析
- 2026贵州省住房资金管理中心招聘工作人员1人笔试参考题库及答案解析
- 【《自动避障扫地机器人设计》11000字(论文)】
- 资金确权协议书
- 2026届江苏省南京市高三二模英语试题(含答案和音频)
- 解读2025新版职业病分类和目录12大类135种
- 2026天津市津鉴检测技术发展有限公司社会招聘工作人员3人考试模拟试题及答案解析
- 2026形势与政策课件中国风范 大国担当-在世界变局中推动构建新型大国关系
- (2025年)湖北省普通高中学业水平考试政治真题卷及答案
评论
0/150
提交评论