【问题标题】:Udacity CS101: Not sure if this nested dictionary question is wrong or I'm missing somethingUdacity CS101:不确定这个嵌套字典问题是错误还是我遗漏了什么
【发布时间】:2020-03-26 13:46:36
【问题描述】:

我是 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'}
}

【问题讨论】:

  • 将实际代码复制到此处而不是链接到屏幕截图,如果有代码可以使用它会更容易提供帮助。
  • 它可能希望 TrueFalse 作为布尔值(不带引号),而不是 "True""False" 作为字符串。
  • @MarkMeyer 这就是问题所在。呸!谢谢
  • 另外,我还可以想象,测验不需要更改字典本身,而是在额外的语句中将值分配给嵌套字典。

标签: python dictionary nested


【解决方案1】:

会是这样的

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'])

【讨论】:

  • 欢迎来到 StackOverflow!我建议避免仅使用代码的答案:也尝试提供一些解释和上下文。
  • 上面的代码没问题,正如答案所预期的那样。也谢谢你帮助我。再见。
【解决方案2】:

首先,你实际上并没有做错什么。测验问题没有被问得很准确,测试也没有看到这个问题可以非常相似地解决的可能性。

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

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

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

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

【讨论】:

    猜你喜欢
    • 2012-02-07
    • 1970-01-01
    • 2011-09-23
    • 2022-01-22
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    相关资源
    最近更新 更多