我是Udacity CS101上的Python超级初学者。任务是向现有的嵌套字典中添加条目is_noble_gas
,以便在用括号查找时将显示True
或False
。
当我提交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'}
}
答案 0 :(得分:0)
首先,您实际上并没有做错任何事情。测验问题的回答不是很准确,测试也没有发现这个问题可以非常相似地解决的可能性。
您仅将is_noble_gas
的值定义为字符串。您的尝试没有错。测验并没有明确表明实际上需要一个布尔值。
误解是打印命令必须使用字符串表示形式。将布尔值用作值本身(仅作为字符串)是有意义的。例如,PEP-285中对此进行了描述。
尽管如此,采用布尔值作为值的解决方案当然更为优雅,因为它只能采用两个值,并且它们也应分别为True
和False
。
此外,我还可以想象测验不需要更改字典本身,而是在额外的语句中将值分配给嵌套字典。
答案 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'])