向类添加词典

2024-06-17 08:35:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我想让我的角色把字典里的条目添加到它们的目录中,但是当我添加它们时,它只会给我返回值,而不是键。我想用这两个不同的部分游戏“你持有'关键',它做'价值'损害”为例。你知道吗

我想我理解这是添加字典的“值”,因为我的库存类型是“列表”,但是很难找到添加字典项的简单方法。你知道吗

提前感谢您的帮助!你知道吗

from random import randint

class Character:
    # Instantiates each character with personality traits
    def __init__(self, name, health, lives, gender, inventory):
        self.name = name
        self.health = int(health)
        self.lives = int(lives)
        self.gender = gender
        self.inventory = []


inventoryitems = {
    'Breadstick': randint(0,5), 
    'Magic Axe': randint(50,100), 
    'Tiny Fists': randint(0,25),
    'Sword': randint(15,30)
    }

player = Character("Kate", 100, 3, 'female',None)

player.inventory.append(inventoryitems['Magic Axe'])
player.inventory.append(inventoryitems['Breadstick'])
print(player.inventory)

Tags: nameself字典magicgenderintinventoryplayer
2条回答

在类中使用dictionary很简单,然后可以使用播放器.inventory.keys(),以后您还可以通过播放器.库存['对象名称']

from random import randint

class Character:
    # Instantiates each character with personality traits
    def __init__(self, name, health, lives, gender, inventory):
        self.name = name
        self.health = int(health)
        self.lives = int(lives)
        self.gender = gender
        self.inventory = {}


inventoryitems = {
    'Breadstick': randint(0,5), 
    'Magic Axe': randint(50,100), 
    'Tiny Fists': randint(0,25),
    'Sword': randint(15,30)
    }

player = Character("Kate", 100, 3, 'female',None)

player.inventory['Magic Axe'] = inventoryitems['Magic Axe']
player.inventory['Breadstick'] = inventoryitems['Breadstick']
print(player.inventory)

可以使用函数items()同时对键和值进行迭代:

from random import randint

class Character:
    # Instantiates each character with personality traits
    def __init__(self, name, health, lives, gender, inventory):
        self.name = name
        self.health = int(health)
        self.lives = int(lives)
        self.gender = gender
        self.inventory = []


inventoryitems = {
    'Breadstick': randint(0,5), 
    'Magic Axe': randint(50,100), 
    'Tiny Fists': randint(0,25),
    'Sword': randint(15,30)
}

player = Character("Kate", 100, 3, 'female',None)

# item will be a (key, value) pair
for item in inventoryitems.items():
    player.inventory.append(item)

# or if you only want to add specific items
items_to_add = ['Breadstick', 'Magic Axe']
for item in items_to_add:
    player.inventory.append((item, inventoryitems[item]))

print(player.inventory)

将打印例如

[('Breadstick', 5), ('Magic Axe', 51), ('Tiny Fists', 21), ('Sword', 17), ('Breadstick', 5), ('Magic Axe', 51)]

请注意,两次添加项不会对每个项应用新的随机值,这可能不是您要查找的。你知道吗

相关问题 更多 >