列表: 可以混合各种类型的数据
创建列表:
创建一个普通列表
list1 = [1,2,3,4]
创建一个混合列表
list2 = [1,'haha',['world',3.14]]
创建一个空列表
list3 = []
列表的方法:
列表添加对象的方法:
append()--在最后添加,且处理一个参数
e.g. list1.append(5)
extend()--扩张的方式
e.g. list1.extend(6)--不能直接list1.extend(6,7),也只能处理一个参数
需要添加多个数据的时候,如下:
e.g. list1.extend([6,7])--使用一个列表来扩展另一个列表
指定位置添加:
insert(arg1,arg2)--arg1(待插入位置的索引值),arg2(需要在该位置插入的参数)
备注:列表索引值从0开始
从列表中获取元素
通过元素的索引值(index)从列表获取单个元素
从列表删除元素
remove()--删除指定元素
e.g. list1.remove(1)--参数arg是需要删除元素的具体值,而不是索引等
pop()--从列表中取出最后一个元素,并将该元素返回给你,此时原来的列表中该元素被删除
pop()--加入arg以后,arg是列表的索引值,可以直接定点删除该元素
pop()删除的值,因为要返回,可以直接赋值给其他变量
del 是一个语句,不是一个函数(BIF),也不是一个方法,所以不要括号
e.g. del list1[1]---arg是索引
e.g. del list1 ---删除整个列表
列表分片(也叫切片,slice):
利用索引值,可以从列表获取一个元素,利用列表分片可以一次性获取多个元素。
list1[1:4]--从1这个索引的位置开始,到4这个索引的位置结束(不包含4这个索引的位置)
操作后,得到的是原来列表的拷贝,原来列表没有变化。
其他: list1[:4]--从0索引开始知道4索引(不含4)
list1[2:]--从2索引开始知道最后所有的索引(含最后一个)
list1[:]--得到一个原来列表的拷贝,这个时候对拷贝出来的列表做操作,原列表不会产生变化
而如果用list3 = list1形式得到的list3,在改变list3内容以后,list1的内容也会随之改变,这个就是所谓python
的“变量”是标签贴到“存储”上去,与C语言等的变量意义稍有不同的地方。
列表的一些常用操作符
比较操作符
逻辑操作符
与字符串操作类似,字符串比较大小,是从左到右比较ASCII码,列表二是从左到右开始
比较。只要第一个索引位置的值大于对方,就显示比对方大。
连接操作符(拼接)
与字符串的拼接类似,但有一定的区别
相当于列表的extend()方法,最好用extend()方法较为规范。连接操作符不能实现添加新元素的操作,+左右类型要一致。
e.g.
重复操作符
e.g. list1*3 与 list1 *= 3的区别
list1*3 相当于得到一个新的列表值,可以赋值给其他“变量”,不改变list1列表原本的值
list1 *= 3,改变了list1列表原本的值
成员关系操作符
123 in list1 --------True
'哈哈' in list1 -----------False
"哈哈" not in list1 ----True
嵌套列表的成员关系操作符示例:
in,not in与break、continue一样,只影响一层。
列表类型的内置方法
备注:使用dir(list)查询
count(arg)--计算参数在列表中出现的次数,只有一个参数,接收2个参数报错
index(arg)--返回参数在列表中的位置
对列表里的列表内的值无效。。。 也是只影响一层,需要的话,要指定下一层
对于一个列表中,有多个重复的值,index()方法默认返回第一个,另有其他参数指定需要返回的范围
index(arg1,arg2,arg3)---arg1需要查找索引的参数值,arg2需要查找范围的开始位置(索引值),arg3需要查找范围的结束位置 (索引值)
reverse()--将整个列表原地翻转,改变了原列表的值
sort()--按照指定的方法对列表进行排序,默认不要参数,默认从小到大进行排队
sort()一共三个参数,暂时只说其中给一个:
sort(reverse=False)--这个是默认的,就是排序从小到大进行排序,同样改变了原列表的值
这样就实现了从大到小进行排序(或者 先调用sort()默认方式,然后用reverse()方法进行翻转也可以达到目标)