我正在尝试从主功能导入此列表项:
character1 = Character("Conan the Barbarian")
for test_item in ["sword", "sausage", "plate armor", "sausage", "sausage"]:
character1.give_item(test_item)
我正在使用类,在类中有这些方法将列表保存到角色
class Character:
def __init__(self, character):
self.__character = character
self.__dct = {}
def give_item(self, items):
self.__dct[self.__character] = items
def printout(self):
for characters in self.__dct:
print(f'Name:', characters)
for items in self.__dct.keys():
print(self.__dct[self.__character])
我的输出仅打印列表中的最后一个条目,看起来这些条目被覆盖了。但我真的不明白为什么
我的输出
Name: Conan the Barbarian
sausage
我希望我的输出是:
Name: Conan the Barbarian
plate armor
sausage
sword
这是因为您正在重复使用密钥。每次,您都将分配给
self.__dict[self.__character]
你的循环
for items in self.__dict.keys())
写得很奇怪items
这里实际上是一个键列表,因此只运行一次,而实际上您需要运行它#次相反,您可以使用列表(或集合):
似乎您的
self.__dct[self.__character] = items
行使用[self.__character]
作为关键字附加到您的dict中。在Python字典中,您可以简单地添加列表,只需编写关键字并将列表作为值,如下所示:相关问题 更多 >
编程相关推荐