Python中几种常见的列表Python是一门非常简洁的语言,和c/c++,java等有着较大的差别。到list和tuple这儿有点犯迷糊了,就从这儿开始写起。目前做接触到的列表有4个,dicth和set,这篇文章就来看看这几种列表的特性和用法。一、python“数组”ListList是python内置的一种数据类型列表。在我看来有点类似于数组,但是深究下来却有很多不同。题外话:python和以往学过的编程语言最大的不同在于变量不用声明类型,也就是可以实现如下操作:a=3print(a)a=‘s’print(a)这样的操作在大多数在以前学过的三种语言种都是不合法的,但是在python种是合法的,python种的变量和c语言种的void类型指针有点类似(粗浅理解)。回归正题,既然python中没有声明类型这一概念,那么list自然也是不用声明类型的,c/c++/java中的数组都只能存储一种数据类型的数据,在python种可以存储多种,list里面也可以存放另一个list例如,下面的语句是合法的:a=[1,’b’,2,’c’,[1,2,3]]1.1list中数据的访问数组的下标是从开始的,同样list的索引也是从0开始的,例如,a[0]的返回值是1,a[1]的返回值是’b’;最后一个元素是len(a)-1,其中len()的返回值是a的长度。因此可以用a[-1]去最后一个元素,即c,同样a[-2]的返回值是2。1.2list的操作函数长度:len();传入参数为list名,返回值为list的长度。删除:删除末尾元素list.pop(),删除指定位置元素list.pop(i),i是从0开始的索引。插入:将元素插入到指定位置,list.insert(i)。追加:末尾增加一个元素x,list.append(x)。二、不可变“数组”tumpleTumple和list类似,但是tumple一经初始化就不能再修改,可以用如下语法定义:T=(1,2,3)定义只有一个元素的tumple时为了消除歧义,可以采用如下语法:T=(1,)可变tumple:Tumple是不可变的但是list是可变的,因此在tumple中嵌入一个list。这个tumple就是可变的,当然可变的仅仅是list那一部分。可以这样初始化:T=(1,2,[1,2])List的操作函数在这里也同样生效:List中的部分操作函数如len()也可在tumple中使用,但是增添修改之类的函数肯定是不可以的了。三、python内置字典dictdict是dictionary的缩写,顾名思义是字典的意思。dict是python种的字典,使用key-value的形式存储,查找速度极快。基本定义语法如下:d={‘Mike’:95,‘Bob’:85,‘Tracy’:75}查找时可以通过key来查找,例如:d[Mike]查找的就是value的值95。数据放入也使用key的方法:d[‘Linda’]=78一个key只能对应一个一个value,如果多次放入,前面放入的值会被冲掉。3.1dict的操作函数判断:判断一个key是否在dict中,查找时如果查找的key不在dict中,解释器会报错,为了防止程序报错而导致意外终止,在查找之前可以判断key是否在dict中。两种方法:方法一:‘Thomas’indFalse方法二:使用get方法,如果不存在,默认返回None,也可以自定义返回结果,用法:d.get(Thomas)d.get(Thomas,-1)-1删除:要删除某一个key,可以使用pop(key)方法。3.2key值为不可变对象因为key是不可变对象,所以list不能作为key使用,但是tumple可以作为key来使用:四、没有value的dict:setset和key类似,但是set中不存储value,set中没有重复的key(经过实验dict中也没有重复的key,如果初始化时出现重复的key,前面的key和value会被后面的覆盖)。创建一个set需要提供一个list作为输入集合:s=set([1,2,3])如果传入重复的key值,set会自动清除重复元素:s=set([1,2,1,2,3])s{1,2,3}4.1set的操作函数增加:add(key),可以增加重复的元素,但是不会有效果。删除:remove(key)。如下图:4.2set的集合运算set可以看作是数学上无序无重复的集合,因此可以做交、并等运算:五、不可变对象操作对于可变对象如list,可以用函数操作,操作后list内部结构会改变。用函数操作不可变对象时,对象内部结构不会改变:但是为什么执行函数之后,输出的结果有变化?以下实验可以解释这个问题:可以简单的理解为:解释器新开辟一个空间,并且将原对象中的内容复制到新开辟空间且为可变,函数操作之后输出的为新开辟的空间的值。六、小结本章一共学习了四种列表:list、tumple、dict、setList相当于数组,初始化方式:L=[1,2,3,’a’]Tumple已经初始化就不可改变,初始化方式:t=(1,2,3,’a’),tumple中嵌入的list可变。dict是python种的内置字典,初始化:d=[‘a’:99,’b’:88,’c’:77]set是没有value的字典,初始化方式:s=set([1,2,3])