python - 如何将项目附加到列表中的字典?
问题描述
你好,我正在开发一个基于文本的游戏,我正在努力使用 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'
没看懂,求大神帮忙!
解决方案
好的,非常感谢大家 :),我只想说有些事情有点奇怪的原因是因为这只是代码的 20% 左右(例如,女巫的房间更多,这就是为什么我需要在一个列表)并且我的房间号在我的实际代码中确实以 0 开头:),pop 是从库存中删除该项目(因为这是 drop 命令),我将它从 item 变量中删除只是为了安全不会导致任何不需要的错误。否则,是的,内容应该是一个列表,我忘记了,感谢您指出它,并且 for 循环实际上已关闭它(我写这篇文章时有点着急)。无论如何,谢谢大家:)
推荐阅读
- python-3.x - 使用python3将netCDF文件转换为数据框
- vue.js - () => {} 在图像的 vue 道具中是什么意思?
- git - 如何计算作者在 git 中两个版本之间更改的行数?
- android - startActivity(intent) 在 Firebase onDataChange() 中不起作用
- firebase - 尝试获取文档 ID 时出错
- mongodb - 转换文档数组中的字段
- java - 应用程序上下文无故关闭
- c# - 如何将 childNodes 添加到特定数据类型的列表中
- javascript - 无法在边缘调试 javascript
- javascript - 如何修复 D3 中的“TypeError:无法读取未定义的属性‘min’”?