首页 > 解决方案 > 简化 Python 中的一系列 elif 语句

问题描述

我正在创建一个井字游戏 ai 程序,其板的格式如下:

board = [['X','O','X'],[' ','O',' '],[' ',' ',' ']]

我有一系列elif这样的语句,它检查一侧是否为空,如果是则返回该侧的棋盘位置:

if board[1][0] == ' ':
    return 1, 0
elif board[1][2] == ' ':
    return 1, 2
elif board[0][1] == ' ':
    return 0, 1
else:
    return 2, 1

既然条件相同,有没有更快的方法呢?


更新 1:实施 kaya3 的答案后,程序运行速度快 0.05 - 0.2 秒

标签: python

解决方案


如果你想对一系列不同的值做同样的事情,把它们放在一个列表中,然后循环它:

sides = [(1, 0), (1, 2), (0, 1), (2, 1)]

for x, y in sides:
    if board[x][y] == ' ':
        return x, y

推荐阅读