鱼C论坛

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

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

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

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

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

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

切片列表赋值是对应赋值列表中的元素的,例如:

  1. >>>s = [1, 2, 3, 4, 5]
  2. >>>s[2:4] = [0, 0, 0, 0]
  3. >>>print(s)

  4. [1, 2, 0, 0, 0, 0, 5]
复制代码


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

所以这里你的代码结果就不难理解了:

  1. # 索引0  1  2  3  4
  2. s = [1, 2, 3, 4, 5]

  3. # 此处切片赋值表示将切片部分赋值为新的数据
  4. # 即索引 2~3 部分元素,依次赋值列表中的元素
  5. # 但此时右边列表无元素,所以就将 2 和 3 索引位置空
  6. s[2:4] = []
  7. print(s)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-10-1 18:13:31 | 显示全部楼层
  1. s = [1,2,3,4,5]
  2. s[:] = []
  3. s
  4. []
  5. s = [1,2,3,4,5]
  6. s[:] = [2,3,4,5,6]
  7. s
  8. [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
你切片赋值   不加括号也是可以的
  1. s
  2. [1, 2, 3, 11, 11, 5]
  3. s[3:4] = 43,44
  4. s
  5. [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 | 显示全部楼层    本楼为最佳答案   

切片列表赋值是对应赋值列表中的元素的,例如:

  1. >>>s = [1, 2, 3, 4, 5]
  2. >>>s[2:4] = [0, 0, 0, 0]
  3. >>>print(s)

  4. [1, 2, 0, 0, 0, 0, 5]
复制代码


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

所以这里你的代码结果就不难理解了:

  1. # 索引0  1  2  3  4
  2. s = [1, 2, 3, 4, 5]

  3. # 此处切片赋值表示将切片部分赋值为新的数据
  4. # 即索引 2~3 部分元素,依次赋值列表中的元素
  5. # 但此时右边列表无元素,所以就将 2 和 3 索引位置空
  6. s[2:4] = []
  7. print(s)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2022-12-5 09:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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