将 Python 个字典从一个字典移动到另一个字典
Move Python Dictionary From A Dictionary to Another
我正在 Python 中制作游戏并将字典作为项目存储在列表中:
equipped = {}
swords = {
'wooden_sword': {'name': 'Wooden Sword', 'dmg': 1}
}
我如何将 wooden_sword
项目移动到 equipped
列表中。
(如果我使用的术语不正确,请随时编辑)
您可以将 equipped
字典中键 'wooden_sword'
处的值(实际上是值的副本)分配给 swords
字典中的值,然后从 swords
:
...
equipped['wooden_sword'] = swords['wooden_sword'].copy()
del swords['wooden_sword']
print(swords)
print(equipped)
输出:
{}
{'wooden_sword': {'name': 'Wooden Sword', 'dmg': 1}}
如果您要移动的这些词典具有除 int/str/float 之外的更多值(其他值,例如 lists/dicts/...),则考虑使用 deepcopy
复制那些内部值以及:
...
from copy import deepcopy
equipped['wooden_sword'] = deepcopy(swords['wooden_sword'])
...
使用类似于:
equipped['wooden_sword'] = swords['wooden_sword'].copy()
我建议给剑加上另一个属性而不是移动它,像这样:
swords = {
'wooden_sword': {
'name': 'Wooden Sword',
'dmg': 1,
'equipped': True
}
}
像这样你可以只更改 1 个字典中的一个属性。
假设您的 "equipped" 是一本字典(由您使用花括号这一事实表示),您将这样做:
equipped.update({'wooden_sword':swords['wooden_sword']})
del swords['wooden_sword']
我建议使用 class 来保留角色物品的实例。然后添加任何你想要的东西,比如剑,作为 class 的属性,如下所示:
class Equipment:
def __init__(self):
self.swords = {}
def add_sword(self, sword):
self.swords.update(sword)
然后你可以有这样的东西:
equipment = Equipment()
sword = {
'wooden_sword': {'name': 'Wooden Sword', 'dmg': 1}
}
equipment.add_sword(sword)
当然,你也可以把那个剑词典变成另一个 class 剑(我再次推荐)。
希望对您有所帮助,祝您游戏顺利!
我正在 Python 中制作游戏并将字典作为项目存储在列表中:
equipped = {}
swords = {
'wooden_sword': {'name': 'Wooden Sword', 'dmg': 1}
}
我如何将 wooden_sword
项目移动到 equipped
列表中。
(如果我使用的术语不正确,请随时编辑)
您可以将 equipped
字典中键 'wooden_sword'
处的值(实际上是值的副本)分配给 swords
字典中的值,然后从 swords
:
...
equipped['wooden_sword'] = swords['wooden_sword'].copy()
del swords['wooden_sword']
print(swords)
print(equipped)
输出:
{}
{'wooden_sword': {'name': 'Wooden Sword', 'dmg': 1}}
如果您要移动的这些词典具有除 int/str/float 之外的更多值(其他值,例如 lists/dicts/...),则考虑使用 deepcopy
复制那些内部值以及:
...
from copy import deepcopy
equipped['wooden_sword'] = deepcopy(swords['wooden_sword'])
...
使用类似于:
equipped['wooden_sword'] = swords['wooden_sword'].copy()
我建议给剑加上另一个属性而不是移动它,像这样:
swords = {
'wooden_sword': {
'name': 'Wooden Sword',
'dmg': 1,
'equipped': True
}
}
像这样你可以只更改 1 个字典中的一个属性。
假设您的 "equipped" 是一本字典(由您使用花括号这一事实表示),您将这样做:
equipped.update({'wooden_sword':swords['wooden_sword']})
del swords['wooden_sword']
我建议使用 class 来保留角色物品的实例。然后添加任何你想要的东西,比如剑,作为 class 的属性,如下所示:
class Equipment:
def __init__(self):
self.swords = {}
def add_sword(self, sword):
self.swords.update(sword)
然后你可以有这样的东西:
equipment = Equipment()
sword = {
'wooden_sword': {'name': 'Wooden Sword', 'dmg': 1}
}
equipment.add_sword(sword)
当然,你也可以把那个剑词典变成另一个 class 剑(我再次推荐)。 希望对您有所帮助,祝您游戏顺利!