集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2116|回复: 8

简谈 python day05

[复制链接]
晓灰灰 发表于 2018-9-17 10:37:52 | 显示全部楼层 |阅读模式
字典数据类型
像列表一样,“字典”是许多值的集合。但不像列表的下标,字典的索引可以使用许多不同数据类型,不只是整数。字典的索引被称为“键”,键及其关联的值称为“键-值”对。在代码中,字典输入时带花括号{}。例:myCat = {'size': 'fat','color':'gray','disposition':'loud'}。字典仍然可以用整数值作为键,就像列表使用整数值作为下标一样,但它们不必从0开始,可以是任意数字。

字典与列表
不像列表,字典中的表项是不排序的。虽然确定两个列表是否相同时,表项的顺序很重要,但在字典中,键-值对输入的顺序并不重要。因为字典时不排序的,所以不能像列表那样切片。尝试访问字典中不存在的键,将导致KeyError出错信息。尽管字典时不排序的,但可以用任意值作为键,这点让你能够用强大的方式来组织数据。

keys()、values()和items()方法
有3个字典方法,它们将返回类似列表的值,分别对应于字典的键、值和键-值对:keys()、vlaues()和items()。这些方法返回的值不是真正的列表,它们不能被修改,没有append()方法。但这些数据类型(分别是dict_keys、dict_values和dict_items)可以用于for循环。请注意,items()方法返回的dict_items值中,包含的是键和值的元组。如果信物通过这些方法得到一个真正的列表,就把类似的列表的返回值传递给list函数。

检查字典中是否存在键或值
前一章提到,in和not in操作符可以检查值是否存在于列表中。也可以利用这些操作符,检查某个键或值是否存在于字典中。例:'name' in spam == 'name' in spam.keys()        'Zophie' in spam.values()。这种情况总是对的:如果想要检查一个值是否为字典中的键,就可以用关键字in(或not in),作用于该字典本身。

get()方法
在访问一个键的值之前,检查该键是否存在于字典中,这很麻烦。好在,在字典有一个get()方法,它有两个参数:要取得其值的键,以及如果该键不存在时,返回的备用值。

setdefault()方法
你常常需要为字典中某个键设置一个默认值,当该键没有任何值时使用它。setdefault()方法提供了一种方法,在一行中完成这件事。传递给该方法的第一个参数,是要检查的键。第二个参数,是如果该键不存在时要设置的值。如果该键确实存在,方法就会返回键的值。

漂亮打印
如果程序中导入pprint模块,就可以使用pprint()和pformat()函数,它们将“漂亮打印”一个字典的字。如果字典本身包含嵌套的列表或字典,pprint.pprint()函数就特别有用。如果希望得到漂亮打印的文本作为字符串,而不是显示在屏幕上,那就调用pprint.pformat()。例:prettyCharacterCount.py

使用数据结构对真实世界建模
*井字棋:带有键'top-R'的字符串表示右上角,带有键'low-L'的字符串表示左下角,带有键'mid-M'的字符串表示中间,以此类推。ticTacToe.py
*嵌套的字典和列表:下面的程序使用字典包含其他字典,用于记录谁为野餐带来了什么食物。totalBrought()函数可以读取这个数据结构,计算所有客人带来的食物的总数。totalBrought.py

你可以用自己喜欢的任何方法,用程序中其他代码能够正确处理这个数据模型。在刚开始编程时,不需要太担心数据建模的“正确”方式。随着经验增加,你可能会得到更有效的模型,但重要的是,该数据模型符合程序的需要。
 楼主| 晓灰灰 发表于 2018-9-17 10:39:49 | 显示全部楼层
简谈 python day05
zhangyukun 发表于 2018-9-18 09:20:37 | 显示全部楼层
简谈 python day05
 楼主| 晓灰灰 发表于 2018-9-18 09:48:50 | 显示全部楼层
简谈 python day05
 楼主| 晓灰灰 发表于 2018-9-19 10:16:26 | 显示全部楼层
简谈 python day05
 楼主| 晓灰灰 发表于 2018-9-20 11:34:39 | 显示全部楼层
简谈 python day05
 楼主| 晓灰灰 发表于 2018-9-21 12:45:26 | 显示全部楼层
简谈 python day05
 楼主| 晓灰灰 发表于 2018-9-27 15:48:12 | 显示全部楼层
简谈 python day05
 楼主| 晓灰灰 发表于 2018-9-28 14:58:24 | 显示全部楼层
简谈 python day05
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-1 14:45 , Processed in 0.061948 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表