我正在使用Python编写基于文本的冒险游戏(通过扩展this guy's有用的框架),我正在尝试建立一个库存系统。要做到这一点,我已经设置了一个完整的项目字典,每个项目都是自己的字典,包含名称和描述等内容(最终它将存储更多,但我开始很简单)。这是首发广告资源:
OBJECTNAME = ''
EXAMINE = ''
inventory = {
'pocket watch': {
OBJECTNAME: 'Pocket watch',
EXAMINE: 'A broken pocket watch you once got as a birthday gift.'
}
}
我的问题是我想编写一个功能,列出清单中每个项目的对象名(以及其他任何内容)。
从其他人那里得到一些建议,我试过了:
def player_inventory():
for item in inventory:
print(item[OBJECTNAME])
我得到错误" TypeError:字符串索引必须是整数"。
我想这听起来很愚蠢,但我对Python并不是特别有经验,而且我似乎很难过。
答案 0 :(得分:0)
您可以使用列表理解:
object_names = [v[OBJECTNAME] for k, v in inventory.items()]
答案 1 :(得分:0)
当您致电for item in inventory:
print(type(item))
时,您正在重新调整字符串对象。
可以用以下行检查:
for key, value in inventory.items():
print(value[OBJECTNAME])
您可以通过以下方式更改循环以迭代项目并返回词典:
{{1}}