第39课 字典的强大

拿着采购单,我已经将所有的商品都采购好了。超市里有那么多的商品,你猜服务员是怎么记住它们的价格的?

巧克力:16元。
可乐:5元。
面包:18元。
在Python中,通过字典来表示对应的关系。字典由键值对组成,超市
-中的商品叫作键(),对应的价格叫作值。
key(value)
键(key)值(value)
巧克力16
可乐5
面包18
雪碧5
棒棒糖3
运用字典,我们制作一个智能商品管理系统吧。
创建商品库,字典用{}。

运行程序输出商品库:
巧克力,可乐,面包,雪碧,棒棒糖{'':16'':5'':18'':5'':3}
这就创建了一个字典,商品名是key,商品价格是value。
思考一个问题,可以将key设置为商品价格,value设置为商品名称吗,能否调换一下?
我也不知道,输入代码,试试看输出是什么。

程序运行结果如下:
巧克力,雪碧,面包,棒棒糖{16:''5:''18:''3:''}

再看看商品,如果是这样,会出现什么状况?当有两件商品的价格是一样的时候,字典就会混乱了。
键(key)值(value)
16元巧克力
5元可乐
18元面包
5元雪碧
3元棒棒糖
字典如何设置key和value是很有讲究的,通常我们通过商品名寻找它的价格。key不能冲突哟!
添加新商品
最近进货了一批6元一包的薯条,需要将它添加进系统。

程序运行结果如下:
巧克力,可乐,面包,雪碧,棒棒糖,薯条{'':16'':5'':18'':5'':3'':6}
通过commodities["薯条"]=6就把薯条加入了商品库中。和列表不同,字典添加元素需要指定key和value。
查询棒棒糖的价格
商品库已经建立好了,现在想要从商品库字典中查询棒棒糖的价格,要怎么做呢?

程序运行结果如下:
棒棒糖的价格是元
上述程序中,通过commodities["棒棒糖"]获取到了棒棒糖的价格。
在字典中,我们只能通过key查找对应的value,也就是为什么在设置key和value的时候要讲究顺序。
可乐涨价了
可乐升级成了无糖可乐,价格上涨,现在售卖8元一瓶,需要对商品库中的价格进行调整。
字典是可以修改的,但是怎么修改呢?
相信看看代码你就会啦。

程序运行结果如下:
巧克力,可乐,面包,雪碧,棒棒糖{'':16'':8'':18'':5'':3}
通过commodities["可乐将可乐的价格由元修改为元,字典的修
"]=8 5 8
改操作是根据key来进行修改的,同一个key只能对应一个值。
面包过期了
面包过期了,需要从商品库中删除,我们可以用del进行删除。

程序运行结果如下:
巧克力,可乐,雪碧,棒棒糖{'':16'':8'':5'':3}
删除了,新面包来了还可以添加回来哟。
商品盘点
我们已经学习过用for循环遍历列表中的元素,是不是可以用同样的方法来遍历字典中的元素呢?


程序运行结果如下:
巧克力
可乐
面包
雪碧
棒棒糖
for c in commodities:只打印出来了key,value呢?
试试for c in commodities.items():。
程序运行结果如下:
巧克力,
(''16)
可乐,
(''8)
面包,
(''18)
雪碧,
(''5)
棒棒糖,
(''3)
遍历了key值和元素,我们都会了,那遍历value呢?
将items换成values?试试看。

程序运行结果如下:
哈哈,还真行。通过for c in commodities.values():我们遍历了所有的value。
对比总结
只遍历key:for c in commodities或者for c in commodities.keys()。
遍历字典元素key和value:for c in commodities.items()。
只遍历value:for c in commodities. values()。
课后小结
·列表。
(1)往列表中添加元素。
(2)修改列表中的元素。
(3)删除列表中的元素。
(4)列表切片。
(5)判断元素是否在列表中。
(6)获取列表元素的索引。
(7)遍历列表。
(8)列表元素的排序。
·元组。
·字典。
(1)往字典中添加元素。
(2)从字典中获取元素。
(3)修改字典中的元素的值。
(4)删除字典中的元素。
(5)遍历字典中的元素。
迎接小挑战
(1)将“布丁”添加到购物清单['牛奶','面包','薯条','可乐']索引3的位置,并且打印列表。
(2)将购物清单中的可乐换成雪碧,并且打印列表。
(3)通过列表切片获取购物清单中索引2到索引4的元素,并且打印出来。
(4)新建一个商品价格字典{'铅笔':2,'橡皮':2,'白纸':1,'文具盒':20,'玩具手枪':60}。对字典进行操作,添加一个8元钱的橡皮泥,并将字典打印出来。
(5)针对上面新建的商品价格,用代码编写一个计算商品购买总价格的程序。
第7章 函数拥有巨大的能力

随着代码越写越多,重复的代码也越来越多。我们是否能把这些具有特定功能的代码拎出来,做成一个可以直接使用的东西。好比橡皮泥的模具,想要什么形状就使用什么模具。