列表列表中行和列最简单的方法是什么?

时间:2018-02-08 00:46:42

标签: python python-3.x list

我目前有一个代表国际象棋棋盘的简单列表,我如何使用行和列来代表棋盘上的棋子?

Board= [ ['bR','bKn','bB','bQ','bK','bB','bKn','bR'],
       ['bP','bP','bP','bP','bP','bP',' bP',' bP'],
       ['_ ','_ ','_ ','_ ','_ ','_ ',' _ ',' _ '],
       ['_ ','_ ','_ ','_ ','_ ','_ ',' _ ',' _ '],
       ['_ ','_ ','_ ','_ ','_ ','_ ',' _ ',' _ '],
       ['_ ','_ ','_ ','_ ','_ ','_ ',' _ ',' _ '],
       ['wP','wP','wP','wP','wP','wP',' wP',' wP'],
       ['wR','wKn','wB','wQ','wK','wB','wKn','wR'] ]

例如:

   while True:
        if [][] in Board is == 'wP': #fix

我可以使用什么来搜索整个电路板以找到“wP”而不是特定的索引?

任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:1)

你的问题很不清楚。如果您有行和列,则可以执行Board[row][column] == 'wP'。这将告诉您该单元格是否等于该字符串。如果你想说“第一个等于字符串X的位置在哪里”:

def find_first_cell(cell_val):
    for row_idx, row in enumerate(Board):
        for col_idx, cell in enumerate(row):
            if cell == cell_val:
                return row_idx, col_idx
    return -1, -1  # or you could raise an exception

如果您想利用内置列表操作,您还可以将您的Board存储为单个列表,并使用索引数学来计算单个列表中rowcol的位置。然后可以使用内置列表方法进行搜索,例如.index'wP' in Board