鱼C论坛

 找回密码
 立即注册
查看: 3100|回复: 6

[已解决]为什么这个代码不理解成插入一个空列表呢,按我的理解结果是[1,2,[],5]

[复制链接]
发表于 2022-10-1 17:30:14 | 显示全部楼层 |阅读模式

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

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

x
>>> s = [1, 2, 3, 4, 5]
>>> s[2:4] = []
>>> print(s)
最佳答案
2022-10-1 22:46:12

切片列表赋值是对应赋值列表中的元素的,例如:
>>>s = [1, 2, 3, 4, 5]
>>>s[2:4] = [0, 0, 0, 0]
>>>print(s)

[1, 2, 0, 0, 0, 0, 5]

如果想达到你所想的结果,应该这样赋值:s[2:4] = [[]], 输出的结果即为 [1, 2, [], 5]

所以这里你的代码结果就不难理解了:
# 索引0  1  2  3  4
s = [1, 2, 3, 4, 5]

# 此处切片赋值表示将切片部分赋值为新的数据
# 即索引 2~3 部分元素,依次赋值列表中的元素
# 但此时右边列表无元素,所以就将 2 和 3 索引位置空
s[2:4] = []
print(s)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-1 18:13:31 | 显示全部楼层
s = [1,2,3,4,5]
s[:] = []
s
[]
s = [1,2,3,4,5]
s[:] = [2,3,4,5,6]
s
[2, 3, 4, 5, 6]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-1 18:26:47 | 显示全部楼层

所以你想告诉我什么
没看懂你的意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-1 18:40:51 | 显示全部楼层
pkqbszs 发表于 2022-10-1 18:26
所以你想告诉我什么
没看懂你的意思

你切片赋值   不加括号也是可以的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-1 18:41:28 | 显示全部楼层
深谙流年 发表于 2022-10-1 18:40
你切片赋值   不加括号也是可以的
s
[1, 2, 3, 11, 11, 5]
s[3:4] = 43,44
s
[1, 2, 3, 43, 44, 11, 5]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-1 19:08:33 | 显示全部楼层
这个代码就是把索引为2 3 的地方置空

要是插入空列表    就要用insert 或者append 方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-1 22:46:12 | 显示全部楼层    本楼为最佳答案   

切片列表赋值是对应赋值列表中的元素的,例如:
>>>s = [1, 2, 3, 4, 5]
>>>s[2:4] = [0, 0, 0, 0]
>>>print(s)

[1, 2, 0, 0, 0, 0, 5]

如果想达到你所想的结果,应该这样赋值:s[2:4] = [[]], 输出的结果即为 [1, 2, [], 5]

所以这里你的代码结果就不难理解了:
# 索引0  1  2  3  4
s = [1, 2, 3, 4, 5]

# 此处切片赋值表示将切片部分赋值为新的数据
# 即索引 2~3 部分元素,依次赋值列表中的元素
# 但此时右边列表无元素,所以就将 2 和 3 索引位置空
s[2:4] = []
print(s)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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