实验2.5.2 Python 基础之字典

您所在的位置:网站首页 python列表嵌套小列表返回一个列表 实验2.5.2 Python 基础之字典

实验2.5.2 Python 基础之字典

2024-01-02 06:11| 来源: 网络整理| 查看: 265

第1关:字典的使用:这份菜单可以修改

字典和列表一样,都是 Python 中十分重要的可迭代类型,都可以存储任意类型元素。如果将列表看作有序对象的集合,那么可以将字典当作无序的集合。我们将以菜单的例子来说明字典使用的基本知识,餐馆的菜单上不仅包含菜名,菜名后面还必须包含该道菜的价格。如果要用列表实现,就需要两个列表,例如:

list_menu = ['fish','pork','potato','noodles']list_price = [40,30,15,10]

给定一个菜名,要查找相应的价格,就先要在list_menu中找到相应的位置,再在list_price中找到相应的价格。这种方式效率低下,那么我们是否可以将菜名和价格都存储在一个可变容器中呢?答案是可以的。

在本关中,我们将学习和掌握能够将相关信息关联起来的 Python 字典的相关知识,并完成对包含菜名和价格的菜单的处理操作。

编程要求:

向menu_dict字典中添加一道菜名lamb,它的价格是50;

获取menu_dict字典中的fish的价格并打印出来;

将menu_dict字典中的fish的价格改为100;

删除menu_dict字典中noodles这道菜;

输出新的menu_dict菜单。

# 创建并初始化menu_dict字典 menu_dict = {} while True: try: food = input() price = int(input()) menu_dict[food]= price except: break # 请在此添加代码,实现对menu_dict的添加、查找、修改等操作,并打印输出相应的值 ########## Begin ########## menu_dict['lamb']=50 print(menu_dict['fish']) menu_dict['fish']=100 del menu_dict['noodles'] print(menu_dict) ########## End ########## 第2关:字典的遍历:菜名和价格的展示

Python 字典中包含大量数据,它和列表一样,支持遍历操作。Python有多种遍历字典的方式,可以遍历字典的所有键-值对、键或值。例如,餐馆的菜单包含了菜名和价格等信息,餐馆需要将菜名和价格都展示给顾客,但也有些时候只需要将菜名都展示给厨师,还有些时候只需要将价格展示给收银员,这三种情况就用到了字典不同的遍历方式。

本关的目标是让学习者掌握字典遍历的相关知识和用法,并基于这些知识实现对菜单不同的查找和展示处理。

对于餐馆中的厨师来说,他们并不想要知道菜的价格,只需要知道菜名然后将其做出来就行。所以对于厨师来说,我们需要遍历menu字典中的所有菜名。Python 为字典类型内置了keys()方法,该方法会将字典里的键遍历出来。

对于餐馆中的收银员来说,他们可能并不想知道菜单的菜名,只需要知道菜的价格,然后收账即可。所以对于收银员来说,我们需要遍历menu字典中的所有菜的价格。Python 为字典类型内置了values()方法,该方法会将字典里的值遍历出来。

编程要求

将menu_dict菜单的键遍历输出;

将menu_dict菜单的值遍历输出。

# 创建并初始化menu_dict字典 menu_dict = {} while True: try: food = input() price = int(input()) menu_dict[food]= price except: break # 请在此添加代码,实现对menu_dict的遍历操作并打印输出键与值 ########## Begin ########## for key in menu_dict.keys(): print(key) for value in menu_dict.values(): print(value) ########## End ########## 第3关:嵌套 - 菜单的信息量好大

Python 的列表和字典可以存储任意类型的元素,所以我们可以将字典存储在列表中,也可以将列表存储在字典中,这种操作称为嵌套。例如,餐馆中的菜单不仅仅包含菜名和价格,可能还会包含很多其他信息,这时候我们可能就需要采取嵌套的存储方式。

本关任务是让学习者利用嵌套方式存储菜单,让读者掌握 Python 嵌套的基本操作。

编程要求:

menu_total列表中初始时只包含menu1字典,menu1字典中包含两道菜和两道菜的价格;

编程要求是向menu_total列表中添加另外一个菜单字典menu2,menu2菜单中的菜名和menu1菜单一样,菜的价格是menu1菜的价格的2倍;

输出新的menu_total列表。

# 初始化menu1字典,输入两道菜的价格 menu1 = {} menu1['fish']=int(input()) menu1['pork']=int(input()) menu2={} # menu_total列表现在只包含menu1字典 menu_total = [menu1]+[menu2] # 请在此添加代码,实现编程要求 ########## Begin ########## menu2['fish']=2*menu1['fish'] menu2['pork']=2*menu1['pork'] ########## End ########## # 输出menu_total列表 print(menu_total) 第4关:字典遍历:菜价统计

字典和列表一样,都是 Python 中十分重要的可迭代类型,都可以存储任意类型元素。如果将列表看作有序对象的集合,那么可以将字典当作无序的集合。我们将以菜单的例子来说明字典使用的基本知识 在本关中,我们将学习和掌握能够将相关信息关联起来的 Python 字典的相关知识,并完成对包含菜名和价格的菜单的处理操作。

统计给定菜单menu_dict,计算菜单中菜价的平均值并输出.

# 创建并初始化menu_dict字典 menu_dict = eval(input()) a=[] # 请在此添加代码,实现对menu_dict平均菜价的计算,并打印输出 ########## Begin ########## for v in menu_dict.values(): a.append(v) b=sum(a)/len(a) print('平均菜价为:{:.2f}元'.format(b)) ########## End ########## 第5关:数字统计

字典和列表一样,都是 Python 中十分重要的可迭代类型,都可以存储任意类型元素。本关中我们需要统计字符串中0-9每个数字出现的次数存储并存储在字典。

给定一个字符串s,统计0-9每个数字在字符串s中出现的次数存储在字典count,并输出字典。

from math import * # 输入字符串 s=input() # 创建并初始化字典 count={} # 请在此添加代码,统计0-9每个数字在字符串中出现的次数存储在字典count,并输出字典 ########## Begin ########## for i in range(0,10): i=str(i) a=0 for j in s: if i==j: a=a+1 i=int(i) count[i]=a print(count) ########## End ########## 第6关:列表嵌套字典:查找成绩

字典和列表可以相互嵌套。本关中我们通过列表嵌套字典来存储若干个同学的成绩,如下例所示。 [{'name':'张小明','score':95}, {'name':'李小红','score':85},{'name':'王小刚','score':75}] 列表的每一个元素都是字典类型,存储一位学生的姓名与成绩,本关任务是按指定姓名查找成绩,并统计平均、最高、最低成绩,输出上述信息。

编程要求

程序会输入一个查找姓名name,一个用字典嵌套列表scores存储学生的姓名和成绩,请查找姓名为name的同学的成绩,并统计显示平均成绩、最高最低成绩,按指定格式输出;如成绩表中没有该姓名,则输出‘没有该姓名’。

# 输入查找姓名 name=input() # 创建并初始化成绩字典列表 scores=eval(input()) a=[] # 请在此添加代码,查找姓名为name的同学的成绩,并统计显示平均成绩、最高最低成绩,按指定格式输出 ########## Begin ########## x=str(scores) if name not in x: print('没有该姓名') else: for i in scores: if i['name']==name: print('姓名:{},成绩:{:.2f}'.format(i['name'],i['score'])) a.append(i['score']) print('平均成绩:{:.2f},最高成绩:{:.2f},最低成绩:{:.2f}'.format(sum(a)/len(a),max(a),min(a))) ########## End ##########

求个三连吧。。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3