如何从键有两个值的字典中输出一个值

How to output one value from a dictionary whose key has two values

我正在为学校开发一个基于文本的游戏项目,我正试图从我的字典中提取一个值。我试图提取的值是“枪”,而不是“大厅”和“枪”。输出是:“你看:大堂枪”。我想要的输出是:“你看:枪”。那可能吗?谢谢。

rooms = {
        'Lobby': {'North': 'Teller Room', 'South': 'Vestibule', 'East': 'Office 1', 'West': 'Office 2'},
         'Vestibule': {'North': 'Lobby'},
        'Office 2': {'East': 'Lobby', 'Item': 'Gun'},
         'Office 1': {'North': 'Bathroom', 'Item': 'Gloves'},
         'Bathroom': {'West': 'Lobby', 'Item': 'Keys'},
         'Teller Room': {'South': 'Lobby', 'East': 'Utility Room', 'West': 'Vault', 'Item': 'Bags'},
        'Utility Room': {'West': 'Teller Room', 'Item': 'Knife'},
         'Vault': {'East': 'Teller Room', 'Item': 'Money'}

}


   collection = rooms['Office 2'].values()
   print('You see: ', *collection)

如果您只想打印该项目,那么您应该只打印该项目:

collection = rooms['Office 2']['Item']

由于并非所有房间都有物品,因此您需要检查一下。

How to output one value from a dictionary whose key has two values

这似乎是个误会。所有字典键总是有一个值。换句话说,当你做rooms['Office 2']时,你只会得到一个值。在这种情况下,该值是另一个具有自己的键和值的字典。因此,当您执行 rooms['Office 2'].values() 时,您将从 rooms['Office 2'].

引用的字典中获取所有值

如果这不是您想要的,您应该对该词典做一些不同的事情,例如只打印带有 print(rooms['Office 2']['Item']) 的项目。您可能想要更新您的内部词典,以便它们都有一个 'Item' 键。如果房间里没有物品,可以加'Item': None表示。

旁注,既然您已经掌握了字典的窍门,您应该了解 classes。它们提供了一种机制,可以直接在代码中表示游戏中的对象。例如,您可以让 class Room 代表游戏中的一个房间。这通常优于字典,因为您可以将数据和行为封装在 class.