Udacity CS101:不确定此嵌套词典问题是否错误或我缺少什么

时间:2019-12-01 22:31:05

标签: python dictionary nested

我是Udacity CS101上的Python超级初学者。任务是向现有的嵌套字典中添加条目is_noble_gas,以便在用括号查找时将显示TrueFalse

当我提交this代码来回答问题时,它告诉我我错了。我在俯视什么吗?

这是测验问题:

测验:将值添加到嵌套词典中

尝试使用嵌套字典。向elements字典中的每个字典添加另一个条目'is_noble_gas'。插入新条目后,您应该能够执行以下查找:

>>> print(elements['hydrogen']['is_noble_gas'])
False
>>> print(elements['helium']['is_noble_gas'])
True

这是我的尝试:

elements = { 
   'hydrogen': {'number': 1, 'weight': 1.00794, 'symbol': 'H',
                'is_noble_gas': 'False'}, 
   'helium': {'number': 2, 'weight': 4.002602, 'symbol': 'He',
              'is_noble_gas': 'True'}
}

2 个答案:

答案 0 :(得分:0)

首先,您实际上并没有做错任何事情。测验问题的回答不是很准确,测试也没有发现这个问题可以非常相似地解决的可能性。

您仅将is_noble_gas的值定义为字符串。您的尝试没有错。测验并没有明确表明实际上需要一个布尔值。

误解是打印命令必须使用字符串表示形式。将布尔值用作值本身(仅作为字符串)是有意义的。例如,PEP-285中对此进行了描述。

尽管如此,采用布尔值作为值的解决方案当然更为优雅,因为它只能采用两个值,并且它们也应分别为TrueFalse

此外,我还可以想象测验不需要更改字典本身,而是在额外的语句中将值分配给嵌套字典。

答案 1 :(得分:0)

会变成这样

elements = {'hydrogen': {'number': 1, 'weight': 1.00794, 'symbol': 'H'},
            'helium': {'number': 2, 'weight': 4.002602, 'symbol': 'He'}}

elements["hydrogen"]["is_noble_gas"] = False
elements["helium"]["is_noble_gas"] = True
print(elements['hydrogen']['is_noble_gas'])
print(elements['helium']['is_noble_gas'])