为了账号安全,请及时绑定邮箱和手机立即绑定

python中,列表操作报错,a[::2] = []怎么不行了

python中,列表操作报错,a[::2] = []怎么不行了

慕田峪4261139 2018-09-02 16:21:14
# 会报错? a = list(range(101)) # a[0:52:] = []  #这行代码不会报错 # del a[::2]   #这行代码不会报错 a[::2] = [] # 这行代码会报错 print(a)
查看完整描述

2 回答

已采纳
?
丵啚

TA贡献2条经验 获得超0个赞

从报错来看,是切片元素数与替换元素数不相等,也就是说,当你采用a[::2]时,切片元素为50个左右,而你的替换元素为空(为空也代表一个替换元素),而你采用a[0:52:]时,由于你第三个参数为空,默认为选取从0到52的这一整个数组也就是切片为1,所以替换时不报错,当你将第三个参数赋值为大于1的数时(当你赋值为1时,同样成功,因为同样代表了选取整个数组),同样报错,你可以试一下

希望我的回答可以帮助到你

查看完整回答
反对 回复 2018-09-14
?
源小猿

TA贡献9条经验 获得超1个赞

a[::2]是一个表达式,它会产生一个列表对象,由于是一个列表对象而不是一个变量,也就是说产生的是不可变的东西,怎么能把后面的值赋给它呢?它自身就会产生一个值,这就像2=3这样的语句,当然会报错阿

查看完整回答
反对 回复 2018-09-04
  • 慕田峪4261139
    慕田峪4261139
    那上面的a[0:52:]也是个列表,我用空列表给它赋值就没有报错
  • 2 回答
  • 0 关注
  • 1906 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信