You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用切片将列表奇数索引元素转负数时遇ValueError报错求解

问题解决:切片赋值时的ValueError错误

你的代码l[1::2] = -1 * l[1::2]之所以报错,核心原因是Python中列表与负数相乘会返回空列表。比如当l[1::2]是[2,4]时,-1 * [2,4]得到的是[],而你左边的切片l[1::2]有2个元素,空列表的长度和切片长度不匹配,就触发了ValueError: attempt to assign sequence of size 0 to extended slice of size 2。

正确实现方式

  • 使用列表推导式逐个对奇数索引元素取负:
    l[1::2] = [-x for x in l[1::2]]
    
  • 或者用map配合匿名函数实现:
    l[1::2] = map(lambda x: -x, l[1::2])
    

举个测试例子:

l = [1, 2, 3, 4, 5]
l[1::2] = [-x for x in l[1::2]]
print(l)  # 输出: [1, -2, 3, -4, 5]

内容的提问来源于stack exchange,提问作者user20250841

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 11:15:36