首页 > 解决方案 > 如何将项目附加到列表中的字典?

问题描述

你好,我正在开发一个基于文本的游戏,我正在努力使用 drop 命令;它的工作方式是你写“物品的D名称”然后它检查物品是否真的在库存中,如果是,它把它放在一个变量中,从库存中删除它,我希望它附加到房间(字典)的内容索引,并且该字典在列表中,我无法附加到它。这是代码(其中一些):

room = []
room.append({'number': 1, 'content': ""})
roomnumber = 1
inv = ["sword"]
command = input(": ")
first_letter = command(0)

if first_letter == "D":
   item = command.split(" ", 2)
   item.remove("D")
   for i in range(0, len(inv):
      inv.pop(i)
#this doesn't work
`     room[roomnumber]['content'].append(item[0])`
      item.pop(0)

在我输入:“D剑”后,它给了我这个错误:

Traceback (most recent call last):
File "/Users/antony/PycharmProjects/TextBased/Main.py", line 54, in <module>
room[roomnumber]['content'].append(item[0])
AttributeError: 'str' object has no attribute 'append'

没看懂,求大神帮忙!

标签: pythondictionaryinputdata-structuresappend

解决方案


好的,非常感谢大家 :),我只想说有些事情有点奇怪的原因是因为这只是代码的 20% 左右(例如,女巫的房间更多,这就是为什么我需要在一个列表)并且我的房间号在我的实际代码中确实以 0 开头:),pop 是从库存中删除该项目(因为这是 drop 命令),我将它从 item 变量中删除只是为了安全不会导致任何不需要的错误。否则,是的,内容应该是一个列表,我忘记了,感谢您指出它,并且 for 循环实际上已关闭它(我写这篇文章时有点着急)。无论如何,谢谢大家:)


推荐阅读