- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构
Python 中常见的数据结构可以统称为容器 (container)。序列 (如列表和元组)、
映射 (如字典)以及集合 (set)是三类主要的容器。
序列
序列中的美个元素被分配一个序号——即元素的位置,也称为索引。 python
中包含 6 种内建的序列,包括 列表、元组、字符串、 Unicode字符串、 buffer 对
象、xrange 对象
常用的数据结构:
字符串、列表、元组、字典、集合
(1)字符串( str)
python 中,单引号或者双引号中的数据即为字符串。字符串属于不可改变对
象(具体描述见下)
(2)列表( list )
列表是一个任意类型、任意嵌套的对象的位置相关的有序集合,没有固定的
大小。列表中,每个元素可以是任意的类型,其语法标志是 [ ]
(3)元组( tuple)
元组近似于列表,二者最大的区别在于,列表可以修改,而元组不能,因此
可以说元组是不可更改的列表。 元组的这一特征类似于字符串。 元组的语法标志
是()
元组的值一旦确定,不可更改。
当元组值存在一个元素时,必须要在后面加上一个逗号“, ”,否则对象将表
现为元素的数据类型
(4)字典( dict )
字典是 python 中唯一内建的映射类型,映射即通过名字来引用值的数据结
构。字典编写在大括号 {} 中,包含一系列的“键:值”对
字典的索引操作和序列具有相同的语法,但是方括号中的元素是键,而不是
相对位置。
(5)集合( set)
集合是有序列(或者其他可迭代的对象)构建的,它们主要用于检查成员资
格。集合没有特殊的表现形式,而是用 set ()来转换集合。
在 python2 中,set 表现形式如下
而在 python3 中,set 表现形式则如下:
序列间的嵌套
序列间可以相互嵌套,即序列的元素可以是其他序列,如下所示:
可变对象和不可变对象
在 Python 中,一切都是对象, Python 中不存在值传递, 只存在引用传递 (也
可以认为是传址) 。
根据对象的可变性,可以将 Python 对象分为两类:可变( mutable)对象和不可
变( immutable)对象。
不可变( immutable)对象 :对象的内容(值)不可变,当尝试改变对象内容的
时候,会创建一个新的对象;也就是说对象的身份( id() ,即对象的地址)会发
生变化
例如:数值类型( int 、float 、bool 、long),字符串( str ),元组( tuple)
对以下 4 种数据类型( int,float,str,tuple),分别改变其内容:
运行结果如下:
由上图可知, 当尝试改变不可变对象的内容时, 将会开辟新的内存来存放更改后
的内容。
可变( mutable)对象 :对象的内容可变,当改变对象内容的时候,对象的身份
(id(),即对象的地址)不会变化
例如:列表( list )、字典( dict )、集合( set)
对以下 2 种数据类型( list,dict ),分别改变其内容:
运行结果如下:
由上图可知,对于可变对象,改变对象的内容,并不需改变对象的地址
a=a+a 和 a+=a
对于不可变对象而言, a=a+a和 a+=a 是完全一样的结果。
但是对于可变对象而言, a=a+a和 a+=a 是两种不同的运算
例 1:一个列表 myList=[ “1”,”2 ”, ”3”] ,经过 a=a+a 运算后的结果如下:
python 中,参数传递只存在引用传递(即传址) ,因此 a 会的 myList 的地址,经
过 a=a+a运算后, a 的值改变,所指
文档评论(0)