从较大的字典中的每个字典访问相同的属性?

时间:2018-02-18 17:21:55

标签: python

我正在使用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并不是特别有经验,而且我似乎很难过。

2 个答案:

答案 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}}