《Python技术与应用》课件-项目7 校园热点话题统计_第1页
《Python技术与应用》课件-项目7 校园热点话题统计_第2页
《Python技术与应用》课件-项目7 校园热点话题统计_第3页
《Python技术与应用》课件-项目7 校园热点话题统计_第4页
《Python技术与应用》课件-项目7 校园热点话题统计_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

录7-1字典的创建7-3集合的创建与操作7-4字典推导7-6项目实现7-7字典的内置方法7-2字典的常用操作7-5集合推导7-8字典与集合的对比7-1字典的创建在Python中,字典(dictionary)是可变的、保存的内容是以“键(key)—值(value)对”的形式存储的序列。键是唯一的,而值可以有多个。键及其关联的值称为“键值对”。字典的主要特征:1.通过键而不是通过索引来读取2.字典是可变的,并且可以任意嵌套3.字典中的键必须唯一4.字典中的键必须不可变7-1字典的创建字典的创建在定义字典时,每个元素都包含了两部分:键(key)和值(value),并且在“键”和“值”之间使用英文冒号分隔,相邻两个元素使用英文逗号分离,所有的元素都放在一个大括号“{}”中dictionary={'key1':'value1','key2':'value2',...,'keyn':'valuen’}dictionary:表示字典名称;key1,key2,...,keyn:表示元素的键,必须是唯一的,并且不可变,例如可以是字符串、数字或者元组;value1,value2,...,valuen:表示元素的值,可以是任何数据类型,不是必须唯一。目

录7-1字典的创建7-3集合的创建与操作7-4字典推导7-6项目实现7-7字典的内置方法7-2字典的常用操作7-5集合推导7-8字典与集合的对比7-2字典的常用操作定义一个字典my_dict={"name":"小明","age":18,"no":"007"}1.查看元素(通过key获取value)

value=my_dict["no"]print(value)0072.修改元素如果key存在那么会修改key对应的value;如果key不存在那么将把这个键值对添加到字典中。#key存在my_dict["age"]=19print(my_dict){'name':'小明','age':19,'no':'007'}7-2字典的常用操作3.删除元素del删除指定的元素格式:

del字典名[key]删除元素(key-value)clear()清空字典中所有的元素使用字典对象的pop()删除并返回指定“键”的元素使用字典对象的popitem()方法随机删除并返回字典中的一个元素。{'name':'小明','age':19,'no':'007','test':'测试'}#key不存在my_dict["test"]=“测试”print(my_dict)7-2字典的常用操作4.计算元素的个数len(字典名)m=len(my_dict)print(m)35.返回—个包含字典所有key的列表字典名.keys()返回一个包含字典所有value的列表字典名.values()返回—个包含所有(键、值)元组的列表字典名.items()keys_list=my_dict.keys()print(list(keys_list))values_list=my_dict.values()print(list(values_list))items_list=my_dict.items()print(list(items_list))['name','age','no']my_dict={"name":"小明","age":18,"no":"007"}['小明',18,'007'][('name','小明'),('age',18),('no','007')]7-2字典的常用操作my_dict={"name":"小明","age":18,"no":"007"}6.判断key是否存在in存在notin不存在if"name"inmy_dict:print("name存在")name存在7.get方法 字典名.get(key)

如果key存在得到value

如果key不存在得到None没有找到 字典名.get(key,value1)

如果key存在得到value

如果key不存在得到value1,不会对字典进行任何操作7-2字典的常用操作my_dict={"name":"小明","age":18,"no":"007"}nameageno(1)遍历keyforkeyinmy_dict.keys(): print(key)(2)遍历valueforvalueinmy_dict.values(): print(value)(3)遍历itemsforiteminmy_dict.items(): print(item)(4)遍历items得到对应的keyvalueforkey,valueinmy_dict.items(): print(key,value)8.字典的遍历小明18007('name','小明')('age',18)('no','007')name小明age18no0077-2字典的常用操作例题7-2使用字典存储学生成绩信息,计算所有学生的平均成绩,并找出了最高分和最低分的学生。#创建一个空字典student_scores={}#添加学生及其成绩student_scores['张三']=90student_scores['李四']=85student_scores['王五']=92#打印所有学生的成绩forstudent,scoreinstudent_scores.items():print(f"{student}的成绩是{score}")7-2字典的常用操作#计算平均成绩average_score=sum(student_scores.values())/len(student_scores)print(f"平均成绩是{average_score}")#找出最高分和最低分的学生max_score=max(student_scores,key=student_scores.get)min_score=min(student_scores,key=student_scores.get)print(f"最高分的学生是{max_score},分数是{student_scores[max_score]}")print(f"最低分的学生是{min_score},分数是{student_scores[min_score]}")目

录7-1字典的创建7-3集合的创建与操作7-4字典推导7-6项目实现7-7字典的内置方法7-2字典的常用操作7-5集合推导7-8字典与集合的对比7-3集合的创建与操作在Python中,集合(set)是一个无序不重复元素的集。集合的创建:1.使用大括号{}创建集合,元素之间用逗号分隔。2.也可以使用set()函数创建集合。注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。set1={1,2,3,4}#直接使用大括号创建集合set2=set([4,5,6,7])#使用set()函数从列表创建集合7-3集合的创建与操作{'e','n','o'}s=set('one')print(s)s.add('two')print(s){'n','w','t','o','e'}1.添加元素(1)add()方法s.add(x)将元素x作为一个整体添加到集合s中。(2)update()方法s.update(x)将元素x拆分成单个字符,存于集合s中,并去掉重复的字符。{'e','two','n','o'}s=set('one')print(s)s.update('two')print(s)}{'n','o','e'}7-3集合的创建与操作{'o','n'}2.删除元素(1)remove()方法s.remove(x)将元素x从集合s中移除,如果元素不存在,则会发生错误。(2)discard()方法s.discard(x)将元素x从集合s中移除,如果元素不存在,不会发生错误。s=set('one')print(s)s.remove('e')print(s){'e','o','n'}7-3集合的创建与操作{'o','n'}2.删除元素(1)remove()方法s.remove(x)将元素x从集合s中移除,如果元素不存在,则会发生错误。(2)discard()方法s.discard(x)将元素x从集合s中移除,如果元素不存在,不会发生错误。s=set('one')print(s)s.remove('e')print(s){'e','o','n'}7-3集合的创建与操作3.计算集合元素个数len(s)

计算集合s元素个数。4.清空集合s.clear(s)

清空集合s5.判断元素是否在集合中存在xins判断元素x是否在集合s中,存在返回True,不存在返回False。

7-3集合的创建与操作6.集合的操作符交集并集差集符号&|-含义返回两个集合的共同元素的集合返回两个集合所有的并去掉重复的元素的集合返回在集合1中但不在集合2中的元素的集合集合1pythonpythonpython集合2onetwothree结果onwotpyhnpyon目

录7-1字典的创建7-3集合的创建与操作7-4字典推导7-6项目实现7-7字典的内置方法7-2字典的常用操作7-5集合推导7-8字典与集合的对比7-4字典推导字典推导是一种通过对迭代器中的每个元素应用表达式来构建新字典的方法。字典推导可以从任何以键值对作为元素的可迭代对象中构建出字典。简单语法:{键表达式:值表达式for元素xin序列if条件]}功能说明:将序列中满足条件的元素,按键、值表达式进行计算,结果追加到新字典中。注意事项:if条件可有可无。7-4字典推导字典推导应用实例1.简单实例(不带条件)

a={

x+1

:

x+x

for

xinrange(5)

}结果:{1:0,2:2,3:4,4:6,5:8}说明:用

x遍历

序列range(5)中的所有元素,以x+1为

键,以x+x为

追加至新字典。x相当于

循环变量range(5)中的元素分别为0,1,2,3,4,所得键(x+1)和值(x+x)分别为:

1,2,3,4,5

0,2,4,6,8随后依次添加到新字典中,得到新字典{1:0,2:2,3:4,4:6,5:8}7-4字典推导字典推导应用实例2.带条件项的实例a={

x+1

:

x+x

for

xinrange(10)

if

x>5} 结果:{7:12,8:14,9:16,10:18}说明:用x

遍历

序列range(10)中的所有元素(x类似于循环变量)。range(10)中的所有元素为:0,1,2,3,4,5,6,7,8,9。如果x>5,则将{x+1

:

x+x}作为新元素追加到新字典a中。range(10)中后4个元素:6,7,8,9满足条件,新生成的新字典应该为:{7:12,8:14,9:16,10:18}7-4字典推导例题7-7提供三个数字,以三个数字为键,三个数字的平方为值来创建字典。x=int(input("请输入第一个数:"))y=int(input("请输入第二个数:"))z=int(input("请输入第三个数:"))dic={n:n**2fornin(x,y,z)}print(dic)print(type(dic))请输入第一个数:2请输入第二个数:4请输入第三个数:6{2:4,4:16,6:36}<class'dict'>目

录7-1字典的创建7-3集合的创建与操作7-4字典推导7-6项目实现7-7字典的内置方法7-2字典的常用操作7-5集合推导7-8字典与集合的对比7-5集合推导集合推导是构建集合的一种快捷方式,新集合的元素为另一序列中的元素经过指定运算后的值。简单语法:{新集合元素表达式for元素xin序列if条件}功能说明:将序列中满足条件的元素,按新集合元素表达式进行计算,结果追加到新集合中。注意事项:if条件可有可无。7-5集合推导集合推导应用实例1.简单实例(不带条件)

a={x+x

for

xinrange(5)

}结果:{0,2,4,6,8}说明:用

x遍历

序列range(5)中的所有元素,将其自身相加后,追加至新集合。x相当于

循环变量range(5)中的元素分别为0,1,2,3,4,将每个元素自身相加,得到:

0,2,4,6,8

随后依次添加到新集合中,得到新集合{0,2,4,6,8}7-5集合推导集合推导应用实例2.带条件项的实例 a={

x+1

:

x+x

for

xinrange(10)

if

x>5}结果:{12,14,16,18}说明:用x

遍历

序列range(10)中的所有元素(x类似于循环变量)。range(10)中的所有元素为:0,1,2,3,4,5,6,7,8,9。如果x>5,则将x+x

作为新元素追加到新集合a中。range(10)中后4个元素:6,7,8,9满足条件,新生成的新集合应该为:{12,14,16,18}目

录7-1字典的创建7-3集合的创建与操作7-4字典推导7-6项目实现7-7字典的内置方法7-2字典的常用操作7-5集合推导7-8字典与集合的对比7-6项目实现-需求分析输入话题内容,保存到变量s;每个话题通过split()函数将话题分隔开存放在列表topics中;定义一个函数count_topics来计算每个话题出现次数;创建一个字典topic_counts来存储每个话题及其出现对应的次数,通过遍历这个列表topics,如果该话题已经存在字典中,则将其次数加1,如果话题不存在于字典中,则添加到字典并且出现次数初始化为1。根据出现次数从高到低排序,最后输出热点话题统计结果。7-6项目实现-代码编写#输入所有话题s=input("请输入话题(用空格隔开):")

#将输入话题文本按空格分隔成话题列表topics=list(s.split(""))

7-6项目实现-代码编写#定义一个函数,用来计算话题次数defcount_topics(topics):topic_counts={}#创建一个字典来存储每个话题及其出现对应的次数

fortopicintopics:iftopicintopic_counts:topic_counts[topic]+=1#如果该话题已经存在字典中,则将其次数加1else:topic_counts[topic]=1#如果该话题不在字典中,则添加到字典并设置初始值为1returntopic_counts

7-6项目实现-代码编写#调用函数进行统计result=count_topics(topics)#根据出现次数从高到低排序sorted_counter=dict(sorted(result.items(),key=lambdax:x[1],reverse=True))

#打印统计结果print("校园热门话题及其出现次数:")fortopic,countinsorted_counter.items():print(f"{topic}:{count}次")7-6项目实现-运行测试请输入话题(用空格隔开):天气真好羽毛球音乐会郊游篮球音乐会游泳摄影羽毛球篮球艺术文化节篮球足球马拉松羽毛球艺术文化节摄影图书馆音乐会羽毛球游泳目

录7-1字典的创建7-3集合的创建与操作7-4字典推导7-6项目实现7-7字典的内置方法7-2字典的常用操作7-5集合推导7-8字典与集合的对比7-7字典内置方法序号方法描述1dict.copy()返回一个字典的浅复制2dict.fromkeys(seq[,val])创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值,默认为None。3dict.has_key(key)如果键在字典dict里返回true,否则返回false。Python3.X里不包含has_key()函数,被__contains__(key)替代4dict.s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论