Python list 简单理解与使用
目录
list的简单理解
list的简单使用
insert
remove
修改某个元素
常用:栈结构
append
pop
是在list的末尾删除一个元素,如
什么是栈
list特性:切片
索引切片
负数索引
不显式声明数字的切片
带步长的切片
负数步长的切片
list的简单理解
list顾名思义,是一个列表,他在形式上
更接近数组的结构
list = [1,2,3,4,5]事实上,与c或者java的数组
int list[5]; int[] list = new int[5];每次都会强制指定一个数据类型(如int,double)不同的是,python的list并不会强制指定类型(甚至你可以同一个list使用不同的类型)如
list = [1,2,"hajimi",3.14]还可以套娃,list里面再套list
list = [1,2,3,[1,2,3]]多变的数据类型,这大概是python的list最显著的特点了(ArrayList做不到系列)
list的简单使用
首先看我们list最常用的几个函数
假设我们有一个list = [1,2,3,4,5]
我们对他进行增删改查的操作
insert
list.insert(1,78)这个函数的字面意思是往索引1位置插入一个数字78(因为是插入,所以索引1之后的数字都向后移)
python的索引与c语言的索引是一致的,都是从0开始而不是从1开始,也就是说这个列表原本的索引和数字的对应关系是
索引 0 1 2 3 4 元素 1 2 3 4 5索引1原本对应的是数字2,但是现在我们往索引1的位置插入了数字78,所以使用了这个函数之后我们的list的结构就变成了
索引 0 1 2 3 4 5 元素 1 78 2 3 4 5即[1,78,2,3,4,5]
remove
有了insert函数的基础,我们可以很容易使用remove函数来删除list中的指定元素
list.remove(1)这个函数字面意思是删除索引位置为1的元素
现在索引位置为1的元素是78,也就是说我们的78被删了
现在的list就又变成了[1,2,3,4,5]
修改某个元素
这里list的使用和数组是一致的,如
list[1] = 91字面意思就是说list中索引位置为1的元素被我们改成了91
现在list变成了[1,91,3,4,5]
常用:栈结构
此外list还有两个特别的新增和删除函数append和pop
append
是在list的末尾追加一个元素,如
list.append(8080)之后我们的list现在就会变成[1,91,3,4,5,8080]
pop
是在list的末尾删除一个元素,如
list.pop()之后我们的list就变成[1,91,3,4,5]
这两个操作非常类似我们的数据结构中的栈
什么是栈
栈是一种先入后出的线性结构。这个概念一听就好抽象,不过我们可以想象有一个盒子,我们往里面装书
看这张鄙人画的简陋的图,我们往这个盒子里放编号1,2,3,4的四本书,我们取出来的顺序只能是先取4,再取3,再取2,再取1,而放进去的顺序只能是先放1再放2再放3然后4,先放进去的1最后拿出来,这就是先入后出的数据结构,也就是栈结构
而list的这个append和pop也是这样,假如你只用这个append和pop函数
那么我们用list模拟放书和取书的步骤就是
list = [] list.append(1) list.append(2) list.append(3) list.append(4) list.pop() list.pop() list.pop() list.pop()就是这样一个结构,也就是说这个list这两个函数用来模拟栈结构相当方便
其他函数
list特性:切片
你是否有过想把一个list只提取其中几个元素,没错,我们python为你提供了相当简单的list切割术
还是我们的list = [1,2,3,4,5]
语法是split_list = list[a:b]或者split_list = list[a:b:c]
索引切片
比如我们
new_list = list[1:4]我们会得到一个[2,3,4]这个split_list = list[a:b]
这个a是开始索引,b是结束索引,这时细心的你会发现这个索引4部分的元素5好像没有被切到,没错,这就是我们python特意设计的左闭右开,左边的数字是可以取的,右边的数字是达不到的
也就是说1:4只能取索引1 2 3没有4
这个时候我们就可以看
负数索引
索引的负数表示倒数的意思
比如
split_list = list[-4:-2]表示的是从倒数第四个到倒数第二个(依旧左闭右开区间)的切片
然后我们可以看
不显式声明数字的切片
比如
split_list = list[2:]表示从索引二到最后一个元素切片
比如
split_list = list[:3]表示从第一个元素开始到索引3(依旧左闭右开)切片
然后我们来看
带步长的切片
比如split_list = list[::2]表示步长为2的切片
比如list = [1,2,3,4,5]
这个split_list就是[1,3,5]
因为切片的步长为2
负数步长的切片
负数步长意味着倒着切片
比如
split_list = list[::-1]依旧拿list=[1,2,3,4,5]举例
得到split_list为[5,4,3,2,1]
列表推导式
懒得写喵
