赞
踩
字典和列表一样,都是 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 ##########
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 ##########
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)
字典和列表一样,都是 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 ##########
字典和列表一样,都是 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 ##########
字典和列表可以相互嵌套。本关中我们通过列表嵌套字典来存储若干个同学的成绩,如下例所示。 [{'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 © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。