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

Python通过input删除列表元素时报x not in list错误如何解决

报错原因与解决方案

错误根源

报错由第二次remove操作触发:menu["harga"]对应的列表存储的是[1000,2000]这类数字型价格值,而你传入的删除参数hapus是输入的字符串(如butter),该值不存在于harga列表中,因此抛出ValueError: list.remove: x not in list错误。删除isi列表元素的操作实际已执行成功。

解决方案

如果你的需求是删除isi列表中对应名称的条目时,同步删除harga列表中同一位置对应的价格,可先查询目标元素在isi列表的下标,再按下标同步删除两个列表的对应元素:

menu = {
    "isi" : ["butter","jagung"],
    "harga" : [1000,2000]
}

hapus = input("insert name want to delete ->  ")
if hapus in menu["isi"]:
    # 获取目标元素的索引
    del_index = menu["isi"].index(hapus)
    # 按索引同步删除两个列表的对应项
    menu["isi"].pop(del_index)
    menu["harga"].pop(del_index)
    print("删除成功")
else:
    print("待删除元素不存在")

可选优化方案

你当前用两个独立列表存储名称和价格的结构存在耦合度高的问题,更推荐直接用键值对字典存储对应关系,删除逻辑更简洁:

# 优化后的数据结构
menu = {
    "butter": 1000,
    "jagung": 2000
}
hapus = input("insert name want to delete ->  ")
if hapus in menu:
    del menu[hapus]
    print("删除成功")
else:
    print("待删除元素不存在")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:45:03