- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用Python 完成.pdf
第九章 本章内容:
● 数据结构操作
● 文件操作
● 操作程序
用Python 完成 ● 与Internet 相关的任务
● 较大的例子
常见的任务 ● 练习
现在,我们已学习了Python 的语法,它的基本的数据类型,和很多我们喜欢的
Python 的库函数。本章假设你至少理解了这门语言的所有基本成分,并且除了
Python 的优雅和“酷”的方面外,也了解了它实用的方面。我们将介绍Python 程
序员要面对的常见的任务。这些任务分为 ——数据结构操作,文件操作等等。
数据结构操作
Python 的最大的特点之一是它把列表、元组和字典作为内置类型。它们非常灵活
和容易使用,一旦你开始使用它们,你将发现你会不由自主地想到它们。
内嵌(inline )拷贝
由于Python 引用的管理模式,语句a = b并没有对b 引用的对象作拷贝,而只
是对那个对象产生了新的引用。有时需要一个对象的新的拷贝,而不只是共享一
个引用。怎样做到这一点依赖于对象的类型。拷贝列表和元组的最简单的方式有
点奇怪。如果myList 是一个列表,那么要对它做拷贝, 你可以用:
newList = myList[:]
你可以理解为“从开始到结尾的分片”,因为我们在第二章“类型和操作符”里学
272
用Python 完成常见的任务 273
到,一个分片开始的缺省索引是序列的开始(0 ),而缺省的结尾是序列的结尾。
由于元组支持同样的分片操作,这个技术也适用于拷贝元组。而字典却不支持分
片操作。为了拷贝字典myDict,你可以用:
newDict={}
for key in myDict.keys():
newDict[key] = myDict[key]
这个操作很常见,所以在Python 1.5 里为字典对象增加了一个新方法来完成这个
任务,就是copy()方法。所以前面的代码可以替换为一句话:
newDict = myDict.copy()
另一个常见的字典操作现在也是标准的字典特性了。如果你有一个字典oneDict,
而想用另一个不同的字典 otherDict 的内容替换它,只需要用:
oneDict.update(otherDict)
这与下面的代码相同:
for key in otherDict.keys():
oneDict[key] = otherDict[key]
如果在update()操作前oneDict与otherDict共享一些键时,在oneDict中的
键关联的旧值将被删除掉。这也许是你所想要的(通常是这样,这也是为什么选
择这个操作并称之为update()的原因)。如果这不是你期望的,那么要做的也许
是抱怨(引发异常),如下:
def mergeWithoutOverlap(oneDict, otherDict):
newDict = oneDict.copy()
for key in otherDict.keys():
if key in oneDict.keys():
raise ValueError, the two dictionaries are sharing keys!
newDict[key] = otherDict[key]
return newDict
或者把二者的值结合为一个元组,例如:
def
原创力文档


文档评论(0)