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