数据结构Python中常见的数据结构可以统称为容器(container)。序列(如列表和元组)、映射(如字典)以及集合(set。是三类主要的容器。序列序列中的美个元素被分配一个序号——即元素的位置,也称为索引。python中包含6种内建的序列,包括列表、元组、字符串、Unicode字符串、buffer对象、xrange对象常用的数据结构:字符串、列表、元组、字典、集合(1)字符串(str)python中,单引号或者双引号中的数据即为字符串。字符串属于不可改变对象(具体描述见下)In[2]:myStr='abc1In[3]:type(myStr)Out[3]:str(2)列表(list)列表是一个任意类型、任意嵌套的对象的位置相关的有序集合,没有固定的大小。列表中,每个元素可以是任意的类型,其语法标志是[]In[2]:myList=["zhangsan",19,"未婚"]In[3]:type(myList)Out[3]:list(3)元组(tuple)元组近似于列表,二者最大的区别在于,列表可以修改,而元组不能,因此可以说元组是不可更改的列表。元组的这一特征类似于字符串。元组的语法标志是()In[7]:myTuple=("lisil,(20("已婚")In[8]:type(myTuple)Out[8]:tuple元组的值一旦确定,不可更改。In[14]:myTjple=("lisi",20,"已婚"}In[15]:myTuple[0]="zhangsan"TypeErrorTraceback(mostrecentcalllast)in()1myTuple[0]="zhangsan"TypeEor:'tuple'objectdoesnotsupportitemassignment当元组值存在一个元素时,必须要在后面加上一个逗号“,”,否则对象将表现为元素的数据类型In[9]:myTuplel=("lisi")In[10]:type(myTuplel)Out[10]:strIn[11]:myTuplel=("lisi",)In[12]:type(myTuplel)Out[12]:t叩le(4)字典(diet)字典是python中唯一内建的映射类型,映射即通过名字来引用值的数据结构。字典编写在大括号{}中,包含一系列的“键:值”对In[18]:myDict={"name,1:"lisi","age":20,"sex":"boy"}In[19]:type(myDict)Out[19]:diet字典的索引操作和序列具有相同的语法,但是方括号中的元素是键,而不是相对位置。In[20]:myDict^-name":"lisi","age":20,"sex":"boy"}In[21]:myDict["name"]Out[21]:'lisi'(5)集合(set)集合是有序列(或者其他可迭代的对象)构建的,它们主要用于检查成员资格。集合没有特殊的表现形式,而是用set()来转换集合。在python2中,set表现形式如下python^ubuntupythonPython2.7.12(default,Jul12016,15:12:24)[GCC5.4.020160609]onIinux2Type"help","copyright","credits"or"license"formoreinformation.>»listl=["zhangsan","lisi","wanger"]»>list_set=set(listl)»>listsetset(['lisi','zhangsan','wanger'])而在python3中,set表现形式则如下:python@ubuntu:~$python3Python3.5.2(default,Jul52016,12:43:10)[GCC5.4.020160609]onlinuxType"help","copyright","credits"or"license"formoreinformation.>»listl=["zhangsan","lisi","wanger"]listset=set(listl)»>listset{'lisi','wanger','zhangsan'}序列间的嵌套序列间可以相互嵌套,即序列的元素可以是其他序列,如下所示In[9]:stuList=[{"name":"zhangsan","age":18,"sex":"boy"},{"name":"lihong","age":20("sex":"girl"}]In[10]:type(stuList)Out[1G]:listIn[11]:stu=stuList[0]In[12]:stuOut[12]:{'age':18,'sex':'boy1,'name':'zhangsan'}In[13]:type(stu)Out[13]:dietIn[14]:stu["name"]Out[14]:1zhangsan'可变对象和不可变对象在Python中,一切都是对象,Python中不存在值传递,只存在引用传递(也可以认为是传址)。根据对象的可变性,可以将Python对象分为两类:可变(mutable)对象和不可变(immutable)对象。不可变(immutable)对象:对象的内容(值)不可变,当尝试改变对象内容的时候,会创建一个新的对象;也就是说对象的身份(id(),即对象的地址)会发生变化例如:数值类型(int、float、bool、long),字符串(str),元组(tuple)对以下4种数据类型(int,float,str,tuple),分别改变其内容:1|jumlnt=102print(numlnt,id(numlnt))3numInt=204print(numlnt,id(numlnt))5print("*"*40)66numFloat=20.27print(numFloat,id(numFloat))8numFloat=10.29print(numFloat,...