首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Python】列表 List ② ( 使用下标索引访问列表 | 正向下标索引 | 反向下标索引 | 嵌套列表下标索引 | 下标索引越界错误 )

一、使用下标索引访问列表 1、下标索引用法 在 Python 列表 List 中每个 数据元素 , 都有对应 位置下标索引 , 正向下标索引 从首部 0 开始 , 向后依次增加 ; 反向下标索引 从尾部...; 列表有 n 个 元素 , 则反向索引取值范围是 -n ~ -1 ; 4、代码示例 - 列表下标索引基本用法 列表下标索引示例 : """ 列表 List 下标索引 代码示例 """...# 定义列表 names = ["Tom", "Jerry", "Jack"] # 使用列表下标索引 # 正向下标索引 print(names[0]) # 输出: Tom print(names[...、嵌套列表下标索引简介 嵌套列表 , 如果想要取出指定位置数据元素 , 需要使用两层下标索引 , 类似于 二维数组 访问 ; 2、代码示例 - 嵌套列表下标索引 代码示例 : """ 列表 List...下标索引时 , 注意 下标索引不要越界 , 否则会报 IndexError: list index out of range 错误 ; Traceback (most recent call last

65050

【Python】列表 List ② ( 使用下标索引访问列表 | 正向下标索引 | 反向下标索引 | 嵌套列表下标索引 | 下标索引越界错误 )

一、使用下标索引访问列表 1、下标索引用法 在 Python 列表 List 中每个 数据元素 , 都有对应 位置下标索引 , 正向下标索引 从首部 0 开始 , 向后依次增加 ; 反向下标索引 从尾部...; 列表有 n 个 元素 , 则反向索引取值范围是 -n ~ -1 ; 4、代码示例 - 列表下标索引基本用法 列表下标索引示例 : """ 列表 List 下标索引 代码示例 """...# 定义列表 names = ["Tom", "Jerry", "Jack"] # 使用列表下标索引 # 正向下标索引 print(names[0]) # 输出: Tom print(names[...、嵌套列表下标索引简介 嵌套列表 , 如果想要取出指定位置数据元素 , 需要使用两层下标索引 , 类似于 二维数组 访问 ; 2、代码示例 - 嵌套列表下标索引 代码示例 : """ 列表 List...下标索引时 , 注意 下标索引不要越界 , 否则会报 IndexError: list index out of range 错误 ; Traceback (most recent call last

38130
您找到你想要的搜索结果了吗?
是的
没有找到

Python 切片为什么不会索引越界

切片书写形式:i : i+n : m ;其中,i 是切片起始索引值,为列表首位时可省略;i+n 是切片结束位置,为列表末位时可省略;m 可以不提供,默认值是 1,不允许为 0,当 m 为负数时,列表翻转...[编程语言中切片语法形式] 切片基本用法就能够满足大部分需求,但是,Python 切片还有一些进阶用法,例如:切片占位符用法(可实现列表赋值、删除与拼接操作)、自定义对象实现切片功能、迭代器切片...关于切片介绍与温习,就到这里了。 下面进入文章标题问题:Python 切片语法为什么不会出现索引越界呢?...当我们根据单个索引进行取值时,如果索引越界,就会得到报错:“IndexError: list index out of range”。...对于这个现象,我其实是有点疑惑,为什么 Python 不直接报索引越界呢,为什么要修正切片边界值,为什么一定要返回一个值呢,即便这个值可能是个空序列?

1.5K20

Python遍历列表remove漏删解决方案

python系列 遍历列表remove漏删解决方案 需求及背景 我有一个需求:保留list_1中含有list_2元素元素,其他删除 list_1 = ['魁哥','夭夭', '阿离', '渣姐...: list index out of range 当删除一个元素之后,新列表长度减少,i还是根据原来列表索引取值,当i超过当前列表长度时,新列表没有该下标对应元素,索引越界。...看不太懂可以丢自己编辑器里面加一些print进行分步分析。 输出 ['秃头企鹅', '王哥'] 方案二(简单) 倒序 如果让索引倒序遍历列表就不会出现越界问题了。...(此方法对应解决最开始下标越界思路。)...,再通过字典value和list_2进行对比,如果不是list_2中元素则赋值为空列表,最后拿到不是空列表value,就是我们需要列表了。

51620

你知道列表切片这些反直觉操作吗

切片访问 对列表索引对应值进行访问,当对单个索引访问时,要注意索引合格范围;但对列表切片时则不会显式报错。...其中,单索引合格范围为-n—n-1,共2n个合格索引,其中n为列表长度;而对于范围索引时,即使访问越界也不会显式报错,而仅仅是返回结果为空: lyst = list(range(10)) lyst[10...[:-1][::-1] #[8, 7, 6, 5, 4, 3, 2, 1, 0],先正序访问前n-1个值再逆序 切片赋值 前面提到,列表索引越界访问会报错,切片访问不报错但返回结果为空。...这一逻辑也类似于列表赋值操作:对于单索引赋值,要求索引必须在合格范围之内,否则报错;但对于切片赋值则"无需"考虑索引是否合法,甚至无需考虑赋值长度是否匹配: a = [1,2,3,4,5] b =...a起始之前,所以整体都给覆盖了 实际上,由于对超出列表长度索引位置进行切片赋值会直接拼接,所以这个操作相当于列表extend(): a = [1,2,3,4,5] b = [5,6] a[len(

57520

Python中remove漏删和索引越界问题解决

list.remove方法在删除元素时候往往会出现漏删或者索引越界情况示例如下: 漏删: lst=[9,25,12,36] for i in lst: if i 10: lst.remove(...break else: break print(lst) [9] 索引越界: 当我们用下标遍历列表时,会出现索引越界情况,如图: lst=[9,25,12,36] for i in range...range 原理都是一样,这里 i 取值为 0 1 2 3 ,当删除一个元素之后,新列表长度减少,索引变为 0 1 2 ,但是 i 还是根据原来列表索引取值,所以当 i 取到 3 时候,...新列表没有该元素,索引越界。...j+=1 print(lst) 解决方法二(推荐): 如果让索引倒序遍历列表就不会出现越界问题了。 这样就算新列表长度减小了,那么i 取值是倒着取列表缺少一个元素对 i 取值无影响。

1.3K41

序列赋值引发Python列表陷进

序列赋值是Python默认操作,如果使用不当,有可能会掉入语法陷阱。 + +是指把两个序列元素拼接在一起。...给my_list最后一个元素列表赋值,结果所有三个元素列表都被赋值了!这反映出my_list这三个元素不是3个列表,而是3个列表引用,指向了同一个相同列表。...a.t变成(1, 2, [30, 40, 50, 60]) b.因为tuple不支持对它元素赋值,所以会抛出TypeError异常 c.以上两个都不是 d.a和b都是对 因为元组不能赋值,所以我会毫不犹豫选择...一、赋值成功,因为t[2]指向是一个可变对象(列表[30, 40]),可变对象是能赋值。二、报错,因为可变对象赋值给了不可变对象(元组t),不可变对象不能赋值。...这位巴西作者说到,在他15年Python生涯中,他还没见过谁在这个地方吃过亏。 小结 本文分别介绍了+、*和列表列表陷阱,+=、*=和元组套列表陷阱,并分别得出了教训。

48510

Python 异常处理

,比如说while循环条件变量 "=="比较运算符和"="赋值运算符混用 知识点不熟练导致错误 索引越界问题IndexError lst=[11,22,33,44] print(lst[4])...append()方法使用掌握不熟练 lst=[] lst=append('A','B','C') print(lst) 思路不清晰问题解决方案 使用print()函数 使用"#"暂时注释部分代码 "...if name in actor: print(name,'出演了',item['title']) 解决方案: 第一层for循环遍历列表可以得到每一部电影,而每一部电影又是一个字典...根据演员键actors取出学员列表,使用判断name在列表中是否存在,最后根据电影名称键title取出电影名称,进行输出 # Python异常处理机制 # try...except 结构 单个...') # Python中常见异常类型 序号 异常类型 描述 1 ZeroDivisionError 除(获取值)零(所以数据类型) 2 IndexError 序列中没有此索引(index) 3 KeyError

56240

python列表

用len()函数可以获得list元素个数: >>>len(clasmates) 3 列表赋值 要把某个元素替换成别的元素,可以直接赋值给对应索引位置: >>>classmats[1] = 'Sarah...' >>>classmates ['Michael', 'Sarah', 'Tracy'] 列表取值 用索引来访问list中每一个位置元素,记得索引是从0开始: >>>classmates[0]...: list index out of range 当索引超出了范围时,Python会报一个IndexError错误,索引,要确保索引不要越界,记得最后元素索引是len(classmates)-1...: list index out of range 当然,倒数第4个旧越界了。...保留列表这个对象 >>> list.clear() >>> print(list) [] 三、列表查询操作 index()方法:根据提供value值返回对应索引下标 >>>nameinfo = [

2.5K50

人人都能学会python编程教程6:列表(list)

上期编程题答案如上图。 列表(list) list是一种有序集合,可以随时添加和删除其中元素。...当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素索引是len(classmates) - 1。...如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素。 以此类推,可以获取倒数第2个、倒数第3个,当然,倒数第4个就越界了。...要把某个元素替换成别的元素,可以直接赋值给对应索引位置; list里面的元素数据类型也可以不同,比如: >>> L = ['Apple', 123, True] list元素也可以是另一个list...如果一个list中一个元素也没有,就是一个空list,它长度为0: >>> L = []>>> len(L)0 好了,列表就讲到这里了,你学会了吗? 下期我们讲解元祖(tuple),敬请期待!

1.1K100

宝宝都能学会python编程教程6:列表(list)

上期编程题答案如上图。 列表(list) list是一种有序集合,可以随时添加和删除其中元素。...当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素索引是len(classmates) - 1。...如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素。 以此类推,可以获取倒数第2个、倒数第3个,当然,倒数第4个就越界了。...要把某个元素替换成别的元素,可以直接赋值给对应索引位置; list里面的元素数据类型也可以不同,比如: >>> L = ['Apple', 123, True] list元素也可以是另一个list,...如果一个list中一个元素也没有,就是一个空list,它长度为0: >>> L = []>>> len(L)0 好了,列表就讲到这里了,你学会了吗? 下期我们讲解元祖(tuple),敬请期待!

86260

使用list和tuple-Python

Python内置一种数据类型是列表:list。list是一种有序集合,可以随时添加和删除其中元素。...: list index out of range 当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素索引是len(classmates) -...Michael', 'Bob', 'Tracy'] 要把某个元素替换成别的元素,可以直接赋值给对应索引位置: >>> classmates[1] = 'Sarah'>>> classmates ['Michael...如果一个list中一个元素也没有,就是一个空list,它长度为0: >>> L = []>>> len(L)0 tuple 另一种有序列表叫元组:tuple。...其他获取元素方法和list是一样,你可以正常地使用classmates[0],classmates[-1],但不能赋值成另外元素。 不可变tuple有什么意义?

30210

技术分享 | Python之列表(list)解析

Python内置一种数据类型是列表(list),list是一种有序集合,可以随时添加和删除其中元素,列表每个元素都分配一个数字,是它位置(或者叫索引),Python列表索引是从0开始,第一个索引是...call last): File "", line 1, in IndexError: list index out of range 3、当索引超出了范围时,Python会报一个IndexError...错误,所以,要确保索引不要越界,记得最后一个元素索引是len(list1) - 1。...4、如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素: >>> classmates[-1] 'com' 列表list索引从0开始。...,可以直接赋值给对应索引位置: >>> list1[1] = 'aliyunbaike' >>> list1 ['www', 'aliyunbaike', 'com'] 空列表list 如果一个list

1.2K70

python列表赋值与深浅拷贝

首先创建一个列表 a=[[1,2,3],4,5,6] 一、赋值 a=[[1,2,3],4,5,6] b=a a[0][1]='tom' print(a) print(b) 结果: [[1, 'tom',...4,5,6] b=a b[0][1]='tom' print(a) print(b) 结果: [[1, 'tom', 3], 4, 5, 6] [[1, 'tom', 3], 4, 5, 6] 总结:赋值不管是对...a列表改变还是对b列表改变, 只要改变其中一个,另一个也会跟着变,这是因为a 和b共用一块内存,没有创建新内存, 他们是相同,他们指向同一个内存区域。...[[1, 2, 3], 'tom', 5, 6]    [[1, 2, 3], 4, 5, 6] 总结:从上面代码可以看出来浅拷贝是重新开辟一块内存,拷贝第一层数据,不拷贝内部子元素 在本代码中,b列表重新开辟了一块内存放元素...【b【0】,4,5,6】,也就是第一层内容, 然后b【0】位置指向了a【0】指向内存位置 三、深拷贝   使用copy函数 重新开辟一块内存,存放拷贝列表所有内容。

90340

Python基础之:数字字符串和列表

12]: 54 // 4 Out[12]: 13 In [13]: 54 % 4 Out[13]: 2 ** 可以表示乘方运算: In [14]: 4 ** 3 Out[14]: 64 我们可以将数字运算赋值给特定变量...如果索引超出了字符串范围就会发送越界错误。...: string index out of range 但是,切片中越界索引会被自动处理: In [36]: site5[:100] Out[36]: 'www.flydean.com' 因为字符串是不可变...列表还支持拼接操作: In [45]: ages + [9, 11] Out[45]: [10, 14, 18, 20, 25, 9, 11] 和String不可变性不同,列表是可变,这就意味着我们可以通过索引来修改列表值...上面我们提到了,列表切片是原列表引用,所以我们可以通过给切片赋值,来修改原始列表值: >>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] >>> letters

63811

Python基础之:数字字符串和列表

: 54 // 4 Out[12]: 13 In [13]: 54 % 4 Out[13]: 2 ** 可以表示乘方运算: In [14]: 4 ** 3 Out[14]: 64 我们可以将数字运算赋值给特定变量...如果索引超出了字符串范围就会发送越界错误。...: string index out of range 但是,切片中越界索引会被自动处理: In [36]: site5[:100] Out[36]: 'www.flydean.com' 因为字符串是不可变...列表还支持拼接操作: In [45]: ages + [9, 11] Out[45]: [10, 14, 18, 20, 25, 9, 11] 和String不可变性不同,列表是可变,这就意味着我们可以通过索引来修改列表值...上面我们提到了,列表切片是原列表引用,所以我们可以通过给切片赋值,来修改原始列表值: >>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] >>> letters

55420

零基础Python教程-详说list有序集合

用len()函数可以获得list元素个数: >>> len(classmates) 3 用索引来访问list中每一个位置元素,记得索引是从0开始: >>> classmates[0] 'Michael...: list index out of range 当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素索引是len(classmates) -...: list index out of range 当然,倒数第4个就越界了。...', 'Adam'] 也可以把元素插入到指定位置,比如索引号为1位置: >>> classmates.insert(1, 'Jack') >>> classmates ['Michael', 'Jack...['Michael', 'Bob', 'Tracy'] 要把某个元素替换成别的元素,可以直接赋值给对应索引位置: >>> classmates[1] = 'Sarah' >>> classmates

58420
领券