【发布时间】:2018-02-05 03:39:00
【问题描述】:
所以我正在制作一个游戏,我有一个元组字典,其中包含运动场上对象的坐标,如下所示(例如):
location = {player : (1, 4), monster : (3, 2), escape : (4, 0)}
稍后在我的代码中,我想将坐标更改为更易于理解的区域。第一个定义部分是一个对应的字母,然后是第二个数字,看起来像这样:玩家在 B4,怪物在 C2,依此类推。右上角的“区域”由元组 (4, 4) 表示,左下角的“区域”由元组 (0, 0) 表示。我唯一能想到的可能是这样的:
location = {player : (1, 4), monster : (3, 2), escape : (4, 0)}
letters = ["A", "B", "C", "D", "E"]
playerArea = "{}{}".format(letters[int(location[player[0]])+1], location[player[1]])
简而言之,它没有用。我认为问题在于从字典中解包元组并将其用作从列表字母中获取字母的数字。对不起,这是令人困惑的,我会尽力回答你所有的问题。
【问题讨论】:
-
什么是
player? -
另外,您能否举一个您期望的输出示例?目前还不清楚。
-
不清楚:
A应该是1还是0? -
player 是一个元组,元组包含 2 个 int 和 x 和 y 值。因为玩家移动,整数在不断变化
-
另外,您的语法不正确。要访问播放器元组的第一个元素,您需要使用
location['player'][0]而不是location['player'[0]]。这同样适用于dict中的其他元素。
标签: python dictionary tuples