|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
各位好!看到第11课
遇到一个问题
>>> list1=[1,3,5,7,9]
>>> list1.pop(2)
5
>>> list1=[1,3,5,7,9]
>>> list1.pop(list1[1])
7
上面两个为什么结果会不同?list1[1]不就是5吗?
另外
>>> list1=[1,3,5,7,9]
>>> list1.pop(list1[2])
Traceback (most recent call last):
File "<pyshell#160>", line 1, in <module>
list1.pop(list1[2])
IndexError: pop index out of range
这又是为什么?
谢谢先!
本帖最后由 Twilight6 于 2020-5-20 08:24 编辑
pop() 里面填的是位置参数哦,若没填参数默认弹除最后一个元素
所以你的代码:
- list1=[ 1, 3, 5, 7, 9]
- #对应位置参数:0 , 1 ,2 , 3 , 4
- #所以 你 list1.pop(1)
- # 是弹出 list1 的 第一个位置参数的元素
复制代码
另一个代码:
- list1= [1 , 3, 5, 7, 9]
- # 对应位置参数 0 ,1, 2,3, 4
- list[1] = 3
- # 所以:
- list1.pop(list[1]) = list1.pop(3) 是移出第三个位置参数的元素 ,即是 7
复制代码
最后一个代码:
- list1= [1 , 3, 5, 7, 9]
- # 对应位置参数 0 ,1, 2,3, 4
- 因为 list1[2] = 5
- list1.pop(list1[2]) = list1.pop(5)
复制代码
超出列表最大索引值 即最大位置参数索引值为 4 而你想弹出 第 5 位 导致报错
如果帮助到你了,就给个最佳吧~
|
|