You need to enable JavaScript to run this app. Python字典价格求和:根据可选日期与用户输入计算总费用及可用日期
优惠活动
大模型
产品
解决方案
定价
更多

Python字典价格求和:根据可选日期与用户输入计算总费用及可用日期

代码报错问题修复方案

错误原因

  • json.dumps是将Python对象序列化为JSON字符串的方法,你的需求是把输入的JSON格式字符串反序列化为Python字典,应该使用json.loads,两者用法完全搞反。
  • 函数内部错误使用了全局的原始输入字符串a做成员判断和取值,输入的a是字符串类型,无法用字符串作为索引取值,因此触发suma += a[dia]的类型报错。
  • 函数仅返回了可用日期列表,没有返回计算好的总费用,调用后也没有打印输出逻辑,无法得到预期结果。

修复后代码

import json
# 读取输入的JSON格式价格映射,转成Python字典
a = input("")
b = input().split(' ')
# 用loads将字符串转为字典,替换原来错误的dumps
dic = json.loads(a)

def citas(dic, b):
    citas_disponibles = []
    suma = 0
    for dia in b:
        # 改为判断是否在传入的字典对象dic中,而非原始输入字符串a
        if dia in dic:
            suma += dic[dia]
            citas_disponibles.append(dia)
    # 同时返回总费用和可用日期列表
    return suma, citas_disponibles

# 接收返回结果并按预期格式打印
total, available_days = citas(dic, b)
print(total)
print(' '.join(available_days))

运行验证

输入第一行传入{"g": 109192, "e": 116374, "o": 183368, "s": 162719},第二行传入g n e k s,输出完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 05:48:03