首页 > 解决方案 > 是否可以将整数添加到由两个整数组成的列表中?(不是第三个变量)

问题描述

我有一本我正在使用 Python 3.9 编写的文本角色扮演游戏的字典。我想知道嵌入在字典中的列表“atk”是否会随着玩家获得新武器而增长,或者当他们升级时。

在我的代码中,“atk”是指可以对对手造成的最低和最高伤害值。

大多数情况下,我关心的是向列表 [5,13] 添加一个值,例如 1,这会将我的列表更新为 [6,14]。请注意,“atk += 1”不起作用,“atk += [1,1]”也不起作用。抱歉,如果这已在其他地方报道。如果有,请给我链接。

char = {'name' : 'Hero',
    'lv': 3,
    'xp': 0,
    'lvnext': 83,
    'gp' : 5,
    'bag' : ["Bronze Spear"],
    'stats' : {'ATT': 1,
                'DEF': 1,
                'WIS': 1,
                'hp' : 100,
                'atk' : [5,13]}}

标签: pythonlistdictionarytext-based

解决方案


你必须是明确的。

char['stats']['atk'][0] += 1
char['stats']['atk'][1] += 1

标准 Python 没有支持逐元素操作的容器。

如果您不介意重新创建列表而不是更新现有列表,则可以使用列表推导。

char['stats']['atk'] = [x + 1 for x in char['stats']['atk']]

推荐阅读