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

如何删除字典指定键对应列表中的单个值?

问题分析

你的代码有两个核心问题:

  1. 变量名不匹配:你定义的目标字典是Transaction_dic,但循环操作的是transaction_dic_11,二者是完全独立的字典,修改不会作用到目标对象上。
  2. 逻辑判断错误:字典里'breakfast blend'对应的是一个列表,而你用transaction_dic_11[k] == 32.32做判断——列表和单个浮点数永远不可能相等,所以删除逻辑根本不会触发。
解决方案

方法一:直接删除单个目标值

如果确定32.32在目标列表中只出现一次,直接用列表的remove()方法定位删除:

Transaction_dic = {'Classic': [37.33, 46.75, 28.18, 33.35],
                   'breakfast blend':[32.32, 46.94, 26.91, 22.03], 
                   'rev it up': [45.82, 33.89]}

# 定位到目标列表并删除指定值
Transaction_dic['breakfast blend'].remove(32.32)
print(Transaction_dic['breakfast blend'])  # 输出: [46.94, 26.91, 22.03]

方法二:删除所有匹配值

如果列表中可能存在多个32.32,用列表推导式重新生成不含目标值的列表:

Transaction_dic['breakfast blend'] = [val for val in Transaction_dic['breakfast blend'] if val != 32.32]

注意浮点数精度问题

如果目标浮点数是计算生成的(不是直接定义的),直接用==可能出现精度误差,建议用近似比较:

threshold = 1e-6  # 精度阈值
Transaction_dic['breakfast blend'] = [val for val in Transaction_dic['breakfast blend'] if abs(val - 32.32) > threshold]

内容的提问来源于stack exchange,提问作者Annie.hut

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:40:46