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

如何在Python字典中删除指定值?用户输入场景实现疑问

解决根据用户输入成绩删除字典列表中对应值的问题

你需要的是根据值删除列表元素,而非按索引操作,所以应该用列表的remove()方法,而不是依赖需要指定索引的pop()。

核心解决方案

直接调用列表的remove()方法,传入用户输入的成绩即可:

grades = {"english":[90,95,81],
      "math":[100,95,92,98],
      "history":[76,98]}

gradeDelete = int(input("Which grade do you want to delete?: "))
# 根据值删除math列表中的对应成绩
grades['math'].remove(gradeDelete)

# 验证删除后的结果
print(grades['math'])

你之前尝试的方法为何无效?

  • grades['math'].append():这是往列表添加元素的方法,和删除无关,且调用时必须传入要添加的参数。
  • grades.popitem():这是字典的方法,作用是删除字典最后一组键值对(比如整个history条目),不会操作列表内的元素。
  • grades['math'].pop(1):这是按索引删除列表元素(比如删除math列表中索引为1的95),无法根据用户输入的成绩值定位删除目标。

处理异常情况

如果用户输入的成绩不在math列表中,remove()会抛出ValueError,可以添加异常处理避免程序崩溃:

grades = {"english":[90,95,81],
      "math":[100,95,92,98],
      "history":[76,98]}

gradeDelete = int(input("Which grade do you want to delete?: "))
try:
    grades['math'].remove(gradeDelete)
    print(f"成绩{gradeDelete}已删除,当前math成绩列表:{grades['math']}")
except ValueError:
    print(f"math列表中不存在成绩{gradeDelete}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:37:12