课程首页 › 第6章 › 第39课

第39课 字典的强大

第6章 兄弟齐聚一堂· 知识点:元组与字典 · 原书 6.10
插图

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

插图

巧克力: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章 函数拥有巨大的能力

插图

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