鱼C论坛

 找回密码
 立即注册
查看: 2268|回复: 3

[已解决]关于列表末尾添加元素的问题

[复制链接]
发表于 2022-10-5 10:54:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
见如下代码:
s = [0, 1, 2, 3, 4, 5]
s[len(s)] = 6
这里报错,说超范围;可以理解。
s.insert(len(s), 6)
>>> s
[0, 1, 2, 3, 4, 5, 6]
为啥s.insert()调用len()不会报错呢?
这两者之间的区别在哪里呢?
最佳答案
2022-10-5 11:00:57
区别在于第一种方法是 s[len(s)] = 6 而第二种方法是 s[len(s):len(s)] = [6]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-5 11:19:35 | 显示全部楼层
列表有增、删、改、查四种类型的操作,而前面一种写法s[len(s)] = 6不是增加而是修改,请注意下面这段代码示例:
>>> s = [0, 1, 2, 3, 4, 5]
>>> s[3] = 233  # 修改索引为3的值
>>> s
[0, 1, 2, 233, 4, 5]
对于修改和查询这两项操作来说中括号里面的索引不能超过最大范围。
当我们要向列表增加元素的时候就需要用到insert、append等方法了。append固定向列表末尾增加元素,而insert可以向列表任意位置增加元素,如果索引超出范围则追加元素到列表末尾
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-5 10:59:44 | 显示全部楼层
insert是插入元素到 ... 索引的位置
而第一种方法不是插入,而是赋值,会超出索引
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-5 11:00:57 | 显示全部楼层    本楼为最佳答案   
区别在于第一种方法是 s[len(s)] = 6 而第二种方法是 s[len(s):len(s)] = [6]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 23:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表