将字母数字坐标转换为2D数组索引的函数

时间:2020-05-31 22:43:04

标签: python

我正在尝试构建一个棋盘游戏,其中我的棋盘是二维列表列表。

self._board = [["A", "B", "C"],
               ["D", "E", "F"],
               ["G", "H", "I"]]

我该如何编写一个函数,该函数可通过使用字母数字坐标来访问每篇文章。 因此,例如,我可以使用该函数通过使用converter(A1)来获得“ A”,或者通过使用converter(B3)来获得“ F”。我想避免导入任何模块。

2 个答案:

答案 0 :(得分:0)

选择第一个字符串输入作为行计数器,将其小写并将其从讲义转换为数字,尽管我在下面创建了字典。选择第二个字符串输入作为列计数器,然后使用这些计数器访问开发板。
这应该可以解决问题,而无需导入外部模块:

self._board = [["A", "B", "C"],
               ["D", "E", "F"],
               ["G", "H", "I"]]

lecter_to_number = {chr(i + 96): i for i in range(1, 27)}

def pick_element(input):

    row = lecter_to_number[input[0].lower()]
    col = int(input[1])

    return self._board[row - 1][col - 1]

pick_element('B3')

答案 1 :(得分:-1)

好吧,所以假设您的开发板的大小pandas不变,那可能是最好的选择-它为列和行提供索引,所以:

import pandas as pd

df=pd.DataFrame(index=list("ABC"), columns=[1,2,3])

# both to assign value and to pull value use .loc[] 
df.loc["B", 3]="x"

输出:

>>> df

     1    2    3
A  NaN  NaN  NaN
B  NaN  NaN    x
C  NaN  NaN  NaN