这个系列的文章也已经烂了许久了,因此今天来更新一下。闲话少叙,我们直接进入正题。
什么是元组和列表
什么是元组,什么是列表,说到它俩,也许大家会很陌生,但是说到c、c++、Java中的数组,大家一定很熟悉,没错其实元组和列表就是其他语言中的数组
但需要注意的是列表是可变的,元组不可变,那么这个怎么理解呢?我们可以把它俩换成静态与动态数组去理解,元组就好比静态数组,无法变长或变短。列表大家就不要去怎么理解了,容易把自己误导。
那么这里也给大家讲一下可变和不可变
可变:创建好后随时能改
不可变:创建好后不可修改,真的想改,必须丢掉旧的,创建一个新的
这里的可变与不可变就不要理解成变长变短,容易误导
总结:元组和列表的特点:元组不可变,列表可变(这个记住即可)
创建列表的两种格式
格式1:数组名 = [ ]
格式2:数组名 = list()
列表的初始化
eg. a = [1,2,3,4,5,6]
输出列表时,只需要使用print(数组名)
那么接下来告诉大家一个好消息,python中的列表不止可以存放单个类型,什么意思呢?我给大家解释一下这句话,这句话的意思时在这个列表中你可以存放多个不同类型的元素,比如说在列表中存放了int类型double类型float类型string类型
元组的下标访问
格式:数组名 [ 下标 ]
eg. arr[ 1 ]
切片操作
通过下标操作,我们一次可以取出一个数组元素
通过切片操作,我们一次可以取出多个数组元素
需要注意的是,切片操作只包含起始位置,不包含终点位置。当然大家也可以记成【1,3)(左闭右开)
省略边界
后边界:
格式:数组名【起始位置:】
意思:从起始位置一直到末尾
前边界:
格式:数组名【:终点位置】
意思: 从数组的第一个元素开始,一直到终点位置,且终点位置取不到。
总结:数组切片操作,区间左闭右开
注意:1. 切片操作,只是取出了原列表的一部分(可以说是原来集合的子集),与数据的拷贝无关
2. 即使列表很大,切片操作依旧很高效
总结:切片操作,子集集合,非数据拷贝,效率高效
带步长的切片操作
格式:数组名[ :: 1]
意思:从数组的第一个元素开始,到最后一个元素结束(包含最后一个元素),这个1就是步长,步长可以随意修改
当步长为负数时,表示从后往前取
注意:当切片中的范围超出有效的小标后,不会出现异常,但还是尽可能的把符合要求的元素取到即可
列表的遍历
for循环遍历列表
通过下标的方式遍历
while下标方式遍历
列表的插入
使用append往数组末尾插入数据
从图中我们可以发现append这个函数不是一个独立的函数,需要在它的前面加个对象.
因此对于像append这样的函数我们称之为方法,那么对于刚学python的小白看到突然出现的对象,可能会有些懵圈,那么我也给大家简单解释一下什么是对象,其实对象可以是变量也可以时数组等等,具体的遇到了再解释
初此之外,我再讲一下插入(指定位置插入)insert
它的使用也是需要对象名.方法名(指定位置,插入内容)
判断某个数是否存在于数组
index的使用
返回的数是让index找的数字在数组中的下标,但是如果输入的数字在数组中不存在,那么程序就会直接报错
列表的删除
pop删除
使用格式,我就不说了,那么像上图中一样,pop()没有任何数字时删除的是数组中最末尾的元素
那么加了数字以后,也删除了数字,只不过删除的是下标为这个数字的数组元素,所以pop中输入的是该元素的下标
remove删除
从上图中我们可以看到在remove中输入的数就是被删除的数,所以remove中输入的是要删除的内容
列表的拼接
+拼接
使用+号拼接列表的时候,只是针对当亲列表的内容生成了一个更大的新列表,原有列表的内容是不变的
extend拼接
extend 是把后一个列表的内容拼接的前一个列表中,修改了前一个列表的内容
这里主要是讲一下这个none,一个特殊的变量的值,表示啥都没有,和Java,c,c++中的空是一样的意思
+=方式拼接
这个的结果和extend的结果一样,但是它俩的底层不一样
extend和+=的区别
a += b 等价于a = a+b
a.extend(b)是直接把b的内容拼接到a的后面
元组
类型:tuple
元组的创建
格式: 数组名 = (元素)
eg. a = (1,2,3,4,5,6)
元组的类型可以是任意类型
下标
eg.a[1]
元组的切片操作
由于这里的操作与列表一致,因此我不再解释,大家自行观看例子即可
for循环遍历数组
for循环通过下标遍历元组
while循环遍历元组
那么从上面的例子看来和列表一样,但是这只是读写,元组是无法修改的,但是可以构建新的
因此,元组只支持“读”操作 ,不支持“修改”操作
那么本篇文章的内容就先到这里,我们下期再见