python 列表的查询操作和切片

目录
  • 1.列表
  • 2.列表的创建[]或list()
  • 3.定位列表中的元素L[0]
  • 4.查询列表中元素索引L.index()
  • 5.列表的切片操作L[start:stop:step]
  • 6.L[slice(start,stop,step)]
  • 7.in/not in 查询是否包含某个元素,存在返回True

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 error
L.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为正数时
  1. 如果不指定start,切片的第一个元素默认是列表是第一个元素
  2. 如果不指定stop,切片的最后一个元素默认是列表的最后一个元素
  3. 从索引start开始往后计算切片
  • step为负数时
  1. 如果不指定start,切片的第一个元素默认为列表的最后一个元素
  2. 如果不指定stop,切片的最后一个元素默认是列表的第一个元素
  3. 从索引start开始往前计算切片

L = list('HelloWorld')
L[1:7:2]
L[1:6]
L[:] # 返回整个列表 输入L[]报错SyntaxError: invalid syntax
L[::-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有三种调用方式
  1. slice(stop)
  2. slice(start,stop)
  3. 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 列表的查询操作和切片的文章就介绍到这了,更多相关python 列表的查询操作和切片内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2022-01-15

python 列表的查询操作和切片

目录 1.列表 2.列表的创建[]或list() 3.定位列表中的元素L[0] 4.查询列表中元素索引L.index() 5.列表的切片操作L[start:stop:step] 6.L[slice(start,stop,step)] 7.in/not in 查询是否包含某个元素,存在返回True 1.列表 列表是python内置的数据结构(列表.元组.字典.集合),相当于数组 列表中所有数据都是按顺序有序排列,列表属于序列类型 列表中的所有数据都有正数和负数的索引,通过指定的索引总能映射到唯一确

python 实现列表的切片操作允许索引超出范围

其余的不说, 列表切片操作允许索引超出范围: 补充:关于python3报错列表索引超出界限的解决方法 python3报错: IndexError: list index out of rang 这个可能是因为在取索引的时候列表里面没有元素了或者不够,那这样自然取不出来了,会报告说超出界限,这样子的话我们可以给这句代码一个if判断,让它如果里面有元素或元素够了才让它取出来,就不会报错了! 补充:Python_怎么利用切片从列表中取出一部分使用 我想从列表中取出一部分拿来使用,可以创建切片,指定需要

Python Learning 列表的更多操作及示例代码

遍历列表-for循环 列表中存储的元素可能非常多,如果想一个一个的访问列表中的元素,可能是一件十分头疼的事.那有没有什么好的办法呢?当然有!使用 for循环 假如有一个食物名单列表,通过 for循环 将列表中的食物名称都打印出来 # 定义一个食物名单列表 foods = ['potato', 'tomato', 'noodles', 'apple', 'pizza'] # 循环访问foods列表 for food in foods: print(food) 输出: potato  tomato 

python中列表的切片与修改知识点总结

python中可以使用下标索引来访问列表中的值,对列表进行切片即截取,也可以对列表的数据项进行修改或更新. 使用下标索引来访问列表中的值,例如list1[1]. 使用索引截取列表中的值,例如list1[2:4],截取列表内容不包括list1[4]. 列表的修改: 使用索引修改列表中的值,例如list1[1]=200. 使用append()方法来添加列表项,例如list1.append('d'). 使用insert()方法来添加列表项,例如list1.insert(3,'d'). append是在

python 返回列表中某个值的索引方法

如下所示: list = [5,6,7,9,1,4,3,2,10] list.index(9) out:3 同时可以返回列表中最大值的索引list.index(max(list)) 最小值索引list.index(min(list)) 以上这篇python 返回列表中某个值的索引方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

Python列表的切片实例讲解

之前讲过python列表的基本操作,我们今天继续讲解列表中的切片等操作,列表的切片就是根据索引取列表中的数据,切片并不会改变原列表.接下来跟着小编一起学习python列表的其他操作吧. 如下所示的列表test,我们截取test[1:3]的元素,因为下标从0开始,因此截取第1个和第二个数据,是不包括结尾的,默认的步长是1,我们还可以看到列表的分片操作实际上不影响原列表. 如果取test[:3]则表示下标从0开始取,相当于test[0:3]:如果取test[1:]则表示切片从索引1一直取到末尾:如果

Python 字符串、列表、元组的截取与切片操作示例

本文实例讲述了Python 字符串.列表.元组的截取与切片操作.分享给大家供大家参考,具体如下: demo.py(字符串.列表.元组的截取): # 切片(截取) [开始索引:结束索引:步长] 步长默认为1 结束索引默认截取到末尾 # 字符串的截取 print("012345"[1:3]) # 12 # 列表的截取 print([0,1,2,3,4,5][1:3]) # [1, 2] # 元组的截取 print((0,1,2,3,4,5)[1:3]) # (1, 2) # 字典的元素是无

Python列表切片操作实例总结

本文实例讲述了Python列表切片操作.分享给大家供大家参考,具体如下: 切片指的是列表的一部分. 1 基本用法 指定第一个元素和最后一个元素的索引,即可创建切片 .Python 会在到达指定的第二个索引之前元素后停止 . books=['半生缘','往事并不如烟','心是孤独的猎手'] print(books[0:2]) 运行结果: ['半生缘', '往事并不如烟'] 2 未指定索引 如果没有指定第一个索引, 那么 Python 会默认从表头开始: books=['半生缘','往事并不如烟',

python列表切片和嵌套列表取值操作详解

给出列表切片的格式: [开头元素::步长] # 输出直到最后一个元素,(最后一个冒号和步长可以省略,下同) [开头元素:结尾元素(不含):步长] # 其中,-1表示list最后一个元素 首先来看最简单的单一列表: a = [1,2,3,4] a[:] a[::] a[:3] a[1:3:2] a[3] 输出依次为: [1,2,3,4] [1,2,3,4] [1,2,3] [2] 4 注意,这里只有最后一个输出是不带[]的,表明只有最后一个输出是元素,其他在切片中只用了:符号的输出均为list,不

Python cookbook(数据结构与算法)对切片命名清除索引的方法

本文实例讲述了Python对切片命名清除索引的方法.分享给大家供大家参考,具体如下: 问题:如何清理掉到处都是硬编码的切片索引 解决方案:对切片命名 假设有一些代码用来从字符串的固定位置中取出具体的数据(比如从一个平面文件或类似的格式:平面文件flat file是一种包含没有相对关系结构的记录文件): ########0123456789012345678901234567890123456789012345678901234567890123456789 record='...........

Python切片操作实例分析

本文实例讲述了Python切片操作.分享给大家供大家参考,具体如下: 在很多编程语言中,针对字符串提供了截取函数,其实目的就是对字符串切片.Python没有针对字符串的截取函数,只需要切片操作就可以完成. 切片操作符是序列名后跟一个方括号,方括号中有3个可选的数字,并用冒号分割,数是可选的,而冒号是必须的. 切片操作符中的第一个数表示切片开始的位置,第二个数表示切片到哪里结束,第三个数表示切片步长. 如果不指定第一个数,Python就从序列首开始.如果没有指定第二个数,则Python会停止在序列

Python切片操作深入详解

本文实例讲述了Python切片操作.分享给大家供大家参考,具体如下: 我们基本上都知道Python的序列对象都是可以用索引号来引用的元素的,索引号可以是正数由0开始从左向右,也可以是负数由-1开始从右向左. 在Python中对于具有序列结构的数据来说都可以使用切片操作,需注意的是序列对象某个索引位置返回的是一个元素,而切片操作返回是和被切片对象相同类型对象的副本. 如下面的例子,虽然都是一个元素,但是对象类型是完全不同的: >>> alist = [0, 1, 2, 3, 4, 5, 6