如何向嵌套字典指定键追加多个字典且不覆盖原有数据?
解决日期餐食字典覆盖问题
你的问题核心是直接赋值meal_data[date] = current_meal会覆盖该日期原有的餐食字典,要实现不覆盖、追加新餐食的需求,只需要先判断日期是否已存在,再选择更新或新增操作:
修改后的代码
date = input("Enter the date in (Day-Month-Year) format: ") name = input("Enter the name of the meal: ") # 检查日期是否已存在于meal_data中 if date in meal_data: # 存在则直接在原有字典里添加新餐食 meal_data[date][name] = (total_calories, total_protein) else: # 不存在则创建新字典并添加 meal_data[date] = {name: (total_calories, total_protein)}
代码说明
- 当输入的日期已经在
meal_data里时,直接通过meal_data[date][name]给该日期对应的字典新增键值对,不会覆盖原有内容 - 当日期不存在时,才创建新的字典并赋值给
meal_data[date]
比如现在meal_data已有{'23-07-2024': {'Smoothie': (245.0, 17.0)}},如果输入日期23-07-2024和餐食名Lunch,执行后meal_data会变成:
{'23-07-2024': {'Smoothie': (245.0, 17.0), 'Lunch': (xxx, xxx)}}
内容的提问来源于stack exchange,提问作者Mohammad Abdullah
相关产品推荐
相关产品推荐

