鱼C论坛

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

求助大神

[复制链接]
发表于 2024-3-10 17:21:21 | 显示全部楼层 |阅读模式

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

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

x
s = [1, 2, 3, 4, 5]
s[len(s): ] = [6]
输出s为[1,2,3,4,5,6]
请问这个中括号里面表示什么呀?len(s):后面的空格表示什么呀,后面的[6]不是下标索引的意思吗怎么能添加到切片里?(原列表下标是0-4,如果新添加下标的话应该是[5]吧)
为什么要用=进行赋值操作呀?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-10 17:21:28 | 显示全部楼层
中括号里面表示一个空的列表,即一个没有任何元素的列表。
len(s):后面的空格表示函数调用时的参数传递,len函数是用来获取列表的长度的,所以len(s)表示获取列表s的长度。
切片操作是基于索引的,切片的下标索引从0开始,所以我们可以通过切片来获取列表中的一部分数据。不过切片操作是返回一个新的列表,不能直接添加到切片里。
赋值操作是将右边的值赋给左边的变量,这样可以将数据保存起来以供后续使用。在这个例子中,可以通过赋值操作将列表s赋给变量s,以便在其他地方使用。

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

使用道具 举报

发表于 2024-3-10 17:28:11 | 显示全部楼层
本帖最后由 小甲鱼的二师兄 于 2024-3-10 17:31 编辑

请问这个中括号里面表示什么呀?

哪里的中括号?

s = [1, 2, 3, 4, 5] 表示的是列表的创建。

s[len(s): ] 中间有冒号,表示列表的切片操作,冒号左边是切片的开始位置,后边是结束位置(这里省略表示切到列表末尾)

后面的 [6] 不是下标索引的意思吗?

不是,[6] 表示一个列表,这个列表中只有一个元素,就是 6。


让我们整理一下:

因为 s[len(s):] 代表的是一个空的切片,所以将 [6] 赋值给它实际上是在列表的末尾追加元素 6。

这就是为什么执行这个操作后的列表 s 变成了 [1, 2, 3, 4, 5, 6]。

注意:这里 [6] 不是一个下标索引,而是一个包含单个元素 6 的新列表。

在 Python 中,切片赋值可以用来替换(或在这种情况下添加)原列表的一部分。

总结来说,这个一个比较高阶的技巧,利用切片将一个新元素添加至列表末尾的一种方式,等同于其他添加元素到列表的方法,例如 s.append(6)。

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

使用道具 举报

发表于 2024-3-10 17:36:38 | 显示全部楼层
本帖最后由 jackz007 于 2024-3-10 17:41 编辑

在 IDLE 环境中,分 2 次键入:
s = [1, 2, 3, 4, 5]
len(s)
      你会看到,系统会回应数字 5,表示列表 s 包含有 5 个元素,所以,len() 是 Python 的内建函数,用途是获取对象(字符串、元组、列表等)的长度。
      而 s[1 : 3] 是切片,字符串、元组、列表等序列对象均支持切片,用来获取序列对象中的一部分,例如,在本例中,s[1 : 3] 则代表列表 s 索引从 1 到 3 的元素,具体包含了 [2 , 3],一共 2 个元素。
       那么,s[len(s) :] 代表什么呢?前面说过,len(s) = 5,所以,s[len(s) : ] 其实就是 s[5 :],代表从列表 s 索引为 5 的位置开始切片,一直到列表结束,对于 s 而言,最后一个元素的索引是 4,索引为 5 的位置上已经没有元素了,所以,s[len(s) :] = 6 其实就是让 s[len(s) + 1] = 6,也就是为 s 新添加一个元素 6。   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 08:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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