|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
s = [1, 2, 3, 4, 5]
s[len(s): ] = [6]
输出s为[1,2,3,4,5,6]
请问这里面len(s):后面的空格表示什么呀,后面的[6]不是角标的意思吗怎么能添加到切片里?为什么要用=进行赋值操作呀?
在 Python 中,切片操作符 slice[start:end] 被用来从序列中获取一个元素的子集。
这里的 start 是切片开始的索引,end 是切片结束的索引(但不包括 end 本身)。
如果 start 是序列的长度或者更大,切片操作将会返回一个空的序列。
在你给出的代码 s[len(s):] = [6] 中:
len(s) 返回列表 s 的长度,这里是 5。
s[len(s):] 创建了一个从列表最后一个元素的下一个位置开始到列表末尾的切片。由于这个位置就是列表的末尾,所以这个切片在赋值之前是一个空的切片。
[6] 是一个包含单个元素 6 的新列表。
s[len(s):] = [6] 这个操作的意思是将 [6] 这个列表的内容赋值给 s 的一个子切片。
由于这个子切片本身是空的,这个操作的效果等同于在列表 s 的末尾追加元素 6。
因此,整个操作等同于执行了 s.append(6)。
在 Python 中,[6] 不是索引或角标的意思,而是一个包含单个元素 6 的新列表。
这种语法是一种快速创建列表的方式。
使用 = 进行赋值操作是因为切片操作也支持替换序列的一部分。当你对切片进行赋值时,你实际上是在告诉 Python 将右侧的序列内容放入左侧指定的位置。
在这个例子中,你是在空切片的位置添加元素,所以它表现为在列表末尾追加元素。
详细讲解看小甲鱼列表切片课程 P22:
|
|