使用 python 更新字典中的值

问题描述 投票:0回答:1

这是 coddy.tech 网站上的挑战:

创建一个名为 update_availability 的函数,允许您更新图书馆目录中书籍的可用性状态。该函数应将图书馆目录、标题和新的可用性状态作为输入参数,并更新目录中指定书籍的可用性状态

def update_availability(catalog, title, new_availability):
   
        if title in catalog:
            catalog[title]['available'] = new_availability
        else:
            catalog[title]['available'] = False

一些测试用例通过了,但由于某种原因未能全部通过。

错误代码:

Traceback (most recent call last):
  File "/tmp/NBGYDzQ2cahiwemgBpKXCVHd1l42/main.py", line 26, in <module>
    eval(line)
  File "<string>", line 1, in <module>
  File "/tmp/NBGYDzQ2cahiwemgBpKXCVHd1l42/main.py", line 8, in update_availability
    catalog[title]['available'] = False
KeyError: 'Harry Potter'
python dictionary
1个回答
0
投票

您正在尝试更改标题上不存在于

available
中的
catalog
值。相反,创建一个新的:

def update_availability(catalog, title, new_availability):
    if title in catalog:
        catalog[title]["available"] = new_availability
    else:
        # at this point title isn't in the catalog, so create one:
        catalog[title] = {"available": False}
© www.soinside.com 2019 - 2024. All rights reserved.