python - 简化 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 秒
解决方案
如果你想对一系列不同的值做同样的事情,把它们放在一个列表中,然后循环它:
sides = [(1, 0), (1, 2), (0, 1), (2, 1)]
for x, y in sides:
if board[x][y] == ' ':
return x, y
推荐阅读
- wininet - 如果连接被重置,HttpSendRequest 会自动重试吗?
- sql - 在 SQL 中实现 windows 函数时出错
- twilio - Twilio 呼叫保持未按预期工作
- azure - 卸载 Microsoft Azure Service Fabric 时出错
- python - 如何使用 python bencode-python3 库解析 torrent 文件?
- git - git checkout 分支导致头分离
- javascript - 同一 HTML 页面上的多个 mpld3 图表上的 ClickInfo 插件问题
- javascript - 如何使用功能性 vanilla JS(非 React)组件从 html 元素的 onclick 属性调用范围内函数?
- java - Firebase - 代码 10 错误谷歌登录。我也有相同项目的朋友无法登录,但我可以
- python - 为什么终端会终止我切换到 Miniforge 的命令?