鱼C论坛

 找回密码
 立即注册
查看: 874|回复: 4

[已解决]怎么理解用切片法向列表追加元素

[复制链接]
发表于 2023-12-21 23:41:45 | 显示全部楼层 |阅读模式

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

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

x
先提前谢谢各位了,怎么理解用切片法向列表追加元素,len(s)明明是5,然后s[5:]明明是空的列表[],再将[6]赋值给s[5:]就变成新的列表了
最佳答案
2023-12-22 00:44:37
本帖最后由 歌者文明清理员 于 2023-12-22 00:45 编辑

len(s) = len([1,2,3,4,5])求长度 -> 5
s[5:]=[6]
就是说,将从索引“5”(索引“4”后面)到末尾这一段范围,设为 [6]。
也就是说

[ 1   2   3   4   5   6 ]
[0] [1] [2] [3] [4] [5]

顺带一提,如果是 s[len(s):]=[7,8]

[ 1   2   3   4   5   7   8 ]
[0] [1] [2] [3] [4] [5] [6]
微信图片_20231221233838.png

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-21 23:41:59 | 显示全部楼层
使用切片法向列表追加元素,实际上是为了在不改变原有列表的基础上,在列表末尾添加新的元素。

假设我们有一个空的列表s = [],现在我们要向其中添加一个元素,比如数字1。可以使用以下代码:
s = []   # 空列表s = s + [1]   # 使用切片法追加元素print(s)   # 输出:[1]
这里的 `s + [1]`,相当于将列表s和包含一个元素的列表[1]拼接在一起,生成一个新的列表。

如果我们要向已有列表末尾追加元素,同样使用切片法即可。例如:
s = [1, 2, 3, 4, 5]s = s + [6]print(s)   # 输出:[1, 2, 3, 4, 5, 6]
这里的 `s + [6]`,是将原列表s和只包含一个元素6的列表拼接在一起,生成一个新的列表。

需要注意的是,使用切片法向列表追加元素会生成一个新的列表,原列表s不会发生改变。所以你提到的 `len(s)` 输出为5,是因为你还没有将新的列表赋值给`s`,所以它仍然是空的列表。

希望能帮到你!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-22 00:44:37 | 显示全部楼层    本楼为最佳答案   
本帖最后由 歌者文明清理员 于 2023-12-22 00:45 编辑

len(s) = len([1,2,3,4,5])求长度 -> 5
s[5:]=[6]
就是说,将从索引“5”(索引“4”后面)到末尾这一段范围,设为 [6]。
也就是说

[ 1   2   3   4   5   6 ]
[0] [1] [2] [3] [4] [5]

顺带一提,如果是 s[len(s):]=[7,8]

[ 1   2   3   4   5   7   8 ]
[0] [1] [2] [3] [4] [5] [6]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-12-22 09:33:19 | 显示全部楼层
歌者文明清理员 发表于 2023-12-22 00:44
len(s) = len([1,2,3,4,5])求长度 -> 5
s[5:]=[6]
就是说,将从索引“5”(索引“4”后面)到末尾这一段 ...

看明白了,感谢感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-22 17:14:23 | 显示全部楼层
bbbbbq 发表于 2023-12-22 09:33
看明白了,感谢感谢

不用谢 + 谢最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-14 17:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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