wbzxz 发表于 2023-2-22 20:41:38

关于列表切片的问题

请各位老师通过切片的方式解释下面这段代码是怎么一个过程?
>>> s =
>>> s =
>>> print(s)

sfqxx 发表于 2023-2-22 21:09:43

是将列表第4个字符替换成7

chinajz 发表于 2023-2-22 21:38:53

本帖最后由 chinajz 于 2023-2-22 22:31 编辑

s = [] 的意思是在s前插入元组,n=0,1,...n-1
在4即s前面插入:
>>> s =
>>> s
4
>>> s =
>>> s

如果在要s即2前面插入:
>>> s =
>>> s
2
>>> s =
>>> s

chinajz 发表于 2023-2-22 21:48:32

本帖最后由 chinajz 于 2023-2-22 22:03 编辑

s前面插入,将替换s
>>> s =
>>> s
0
>>> s =
>>> s

未泯 发表于 2023-2-22 22:48:59

s=s=s
后面的数字比前面的小时:表示插入的意思,就是插入到第3个后面
后面的数字比前面的大时:表示替换的意思。比如s表示替换掉第三个后面的一个元素,表示替换掉第三个后面两个元素

chinajz 发表于 2023-2-23 07:46:40

本帖最后由 chinajz 于 2023-2-23 07:53 编辑

其实都是替换并插入,s中,n<=x时,结果为[];n>x时,将从n开始,向后替换n-x个元素。
>>> s =
>>> s
[]
>>> s
[]
>>> s

>>> s=
>>> s

ouyunfu 发表于 2023-2-23 09:35:54

这段代码的含义如下:

首先创建一个列表 s,其中包含五个整数 。

接下来,使用切片的方式,选取列表 s 中索引为 3 到索引为 1 之间(不包括索引为 1 的元素)的子列表。由于索引为 3 的元素是整数 4,索引为 1 的元素是整数 2,因此这个子列表为空,也就是 []。

然后,将子列表 赋值给这个空的子列表,也就是将整数 7 插入到列表 s 中索引为 3 的位置。

最后,使用 print 函数输出列表 s,结果为 。

因此,这段代码的效果是将整数 7 插入到列表 s 中索引为 3 的位置。

wbzxz 发表于 2023-2-23 21:49:07

sfqxx 发表于 2023-2-22 21:09
是将列表第4个字符替换成7

感谢指点

wbzxz 发表于 2023-2-23 22:14:27

本帖最后由 wbzxz 于 2023-2-23 22:18 编辑

chinajz 发表于 2023-2-22 21:38
s = [] 的意思是在s前插入元组,n=0,1,...n-1
在4即s前面插入:



谢谢您的指点,但我感觉还是有点不对,按照您的说法

s = [] 的意思是在s前插入元组,n=0,1,...n-1

s = 时,结果是在0前插入元组,是

而实际是:

不好意思,看到了您的第二个解答,意思是s要被替换掉的,这种情况属于特殊情况,是吧。

wbzxz 发表于 2023-2-23 22:24:08

未泯 发表于 2023-2-22 22:48
s=s=s
后面的数字比前面的小时:表示插入的意思,就是插入到第3个后面
后面的数字比前面 ...

谢谢,应该是您说的规律。

未泯 发表于 2023-2-23 22:37:49

本帖最后由 未泯 于 2023-2-24 08:34 编辑

ouyunfu 发表于 2023-2-23 09:35
这段代码的含义如下:

首先创建一个列表 s,其中包含五个整数 。


索引为 3 的元素是整数 4,索引为 1 的元素是整数 2,因此这个子列表为空,也就是 []

如果是这样的逻辑,那子列表就不为空,而是

为啥没把替换掉,只能是降序步长没定义的都默认为s的空列表
页: [1]
查看完整版本: 关于列表切片的问题