You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

为何执行指定代码时出现ValueError: list.remove(x): x not in list错误?明明85存在于gradebook列表中

解决ValueError: list.remove(x): x not in list的问题——明明数值存在却报错

嗨,我来帮你理清这个问题!你遇到的困惑很常见,核心是你搞错了gradebook列表里的元素类型

看一下你的代码:

grades = [98, 97, 85, 88]
gradebook = [["physics", 98], ["calculus", 97], ["poetry", 85], ["history", 88]]
gradebook.remove(85)

gradebook里的每一个元素都是子列表(比如["poetry", 85]),而不是单独的数字。当你调用gradebook.remove(85)时,Python会在gradebook的顶层元素里寻找完全等于85的项——但顶层元素全是列表,根本没有单独的85,所以才会抛出这个错误,哪怕子列表里包含85也没用。

如果你的目标是移除包含85的那个子列表,有两种常见的解决方法:

  • 方法一:遍历找到目标子列表再移除
    你可以先遍历gradebook,找到包含85的子列表后再调用remove:
    for item in gradebook:
        if 85 in item:
            gradebook.remove(item)
            break  # 找到后立即停止遍历,避免后续不必要的操作
    
  • 方法二:直接传入完整的子列表
    如果你明确知道目标子列表的内容,也可以直接传入完整的子列表进行移除:
    gradebook.remove(["poetry", 85])
    

这样就能正确移除你想要的项啦~

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

火山引擎 最新活动