字典和列表一样,都是Python
中十分重要的可变容器模型,都可以存储任意类型元素。
第一关 字典的使用
- 任务描述
我们将以菜单的例子来说明字典使用的基本知识:
餐馆的菜单上不仅包含菜名,菜名后面还必须包含该道菜的价格。如果要用列表实现,就需要两个列表,例如:
list_menu = ['fish','pork','potato','noodles']
list_price = [40,30,15,10]
给定一个菜名,要查找相应的价格,就先要在list_menu
中找到相应的位置,再在list_price
中找到相应的价格。
在本关中,我们将学习掌握能够将相关信息关联起来的Python
字典的相关知识,并完成对包含菜名和价格的菜单的处理操作。
- 编程要求
1.向menu_dict
字典中添加一道菜名lamb
,它的价格是50
;
2.获取menu_dict
字典中的fish
的价格并打印出来;
3.将menu_dict
字典中的fish
的价格改为100
;
4.删除menu_dict
字典中noodles
这道菜;
5.输出新的menu_dict
菜单。
- 代码实现
# coding=utf-8
# 创建并初始化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
有多种遍历字典的方式,可以遍历字典的所有键-值对,键或值。
例如:餐馆的菜单包含了菜名和价格等信息,餐馆需要将菜名和价格都展示给顾客,但也有些时候只需要将菜名都展示给厨师,还有些时候只需要将价格展示给收银员。这三种情况就用到了字典不同的遍历方式。
本关的目标是掌握字典遍历的相关知识和用法,需要基于这些知识实现对菜单不同的查找和展示处理。
- 编程要求
1.将menu_dict
菜单的键遍历输出;
2.将menu_dict
菜单的值遍历输出;
- 代码实现
# coding=utf-8
# 创建并初始化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
嵌套的基本操作。
- 编程要求
1.menu_total
列表中初始时只包含menu1
字典,menu1
字典中包含两道菜和两道菜的价格;
2.编程要求是向menu_total
列表中添加另外一个菜单字典menu2
,menu2
菜单中的菜名和menu1
菜单一样,菜的价格是menu1
菜的价格的2
倍;
3.输出新的menu_total
列表。
- 代码实现
#coding=utf-8
#初始化menu1字典,输入两道菜的价格
menu1 = {}
menu1['fish']=int(input())
menu1['pork']=int(input())
#menu_total列表现在只包含menu1字典
menu_total = [menu1]
# 请在此添加代码,实现编程要求
#********** Begin *********#
menu2 = {}
for key,value in menu1.items():
menu2[key] = value*2
menu_total.append(menu2)
#********** End **********#
#输出menu_total列表
print(menu_total)