本篇内容主要讲解“python列表的查询操作和切片方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python列表的查询操作和切片方法是什么”吧!
1.列表
列表是
python
内置的数据结构(列表、元组、字典、集合),相当于数组列表中所有数据都是按顺序有序排列,列表属于序列类型
列表中的所有数据都有正数和负数的索引,通过指定的索引总能映射到唯一确定的数据
列表中可以存在重复的数据(区分set)
列表中可以保存任何类型的数据,多种类型的数据可以混合存储在一个列表中
列表可以根据需要动态地伸缩,系统会根据需要动态地分配和回收内存,使用前无须预先声明列表的容量
2.列表的创建[]或list()
用中括号[]创建列表,变量名不要取名为list或l,list是列表对应的类名,l容易被误认为数字1
调用内置函数
list()(
类list的构造方法)
L = [] # 创建空列表L = [1,2,3,4,5,'python']print(L) # [1, 2, 3, 4, 5, 'python']list(rang(1, 5)) # 传入range对象 [1,2,3,4]list([1,2,3,4,5,'python']) # 直接传入中括号[]list() # 创建空列表
3.定位列表中的元素L[0]
使用索引获得列表的元素,如果指定的索引在列表中不存在,抛出错误IndexError: list index out of range
4.查询列表中元素索引L.index()
第一个元素索引是0,后续元素依次+1
最后一个元素索引是-1,前面元素依次-1
L = ['H','e','l','l','o'] # 定义列表,元素可以为数值,但怕给索引搞混了用了字符L.index('e')L.index('l')L.index('h') # value errorL.index('l',2) # 从索引2开始找'l'L.index('l',2,5) # 在[2, 4]内找'l'
获得列表中指定元素的索引调用方法
index
,只返回大于0的数值,比如L.index(‘e’) = 1,如列表中存在多个指定元素,方法index
只返回第一个指定元素的索引值,比如L.index(‘l’) = 2,如果列表中不存在指定元素,抛出错误ValueError: ‘h’ is not in list
调用方法index时还可以指定起始索引start和结束索引stop两个参数,在一定范围内查找元素 (不包含索引stop处值)
5.列表的切片操作L[start:stop:step]
切片的语法格式 [start:stop:step]
得到的切片依然是列表,是原始列表的片段的一份拷贝
得到的切片不包括索引stop对应的元素
步长step默认值为1,这时可以简化为[start:stop]
当step为正数时
如果不指定start,切片的第一个元素默认是列表是第一个元素
如果不指定stop,切片的最后一个元素默认是列表的最后一个元素
从索引start开始往后计算切片
当
step
为负数时
如果不指定start,切片的第一个元素默认为列表的最后一个元素
如果不指定stop,切片的最后一个元素默认是列表的第一个元素
从索引start开始往前计算切片
L = list('HelloWorld')L[1:7:2]L[1:6]L[:] # 返回整个列表 输入L[]报错SyntaxError: invalid syntaxL[::-1] # 翻转整个列表L[:-1] # stop指定为-1所在元素 ['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l']L[6:0:-2]L[0:6:-2] # start指定为0所在元素,往前看没有值,返回[]L[8::-2] # ['l', 'o', 'o', 'l', 'H']L[8:0:-2] # ['l', 'o', 'o', 'l'] 不包含stop指定的元素L[-2:0:-2]L[:3:-2]
切片操作允许索引越界(对比index不允许)
L = list('HelloWorld')L[:100]L[-100:]
6.L[slice(start,stop,step)]
可以调用内置函数slice(类slice的构造方法)创建slice类型的对象
内置函数slice有三种调用方式
slice(stop)
slice(start,stop)
slice(start,stop,step)
start、stop和step的默认值都是None
slice(start,stop,step)与切片操作中的start:stop:step等价
L = list('HelloWorld')L[slice(1,9,2)]L[1:9:2]L[::]L[slice(None,None,None)] # L[slice(None)] 返回整个列表L[1:7]L[slice(1,7)]L[:7]L[slice(7)] #可以只输入stop,也可写作 L[slice(None, 7)]
7.in/not in 查询是否包含某个元素,存在返回True
L = list('HelloWorld')print(5 in L) # False
到此,相信大家对“python列表的查询操作和切片方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!