python - 使用列表作为字典的键的替代方法是什么?

标签 python python-3.x dictionary

我正在制作一个国际象棋游戏。该板存储在二维列表中。游戏还有一个运行极小极大算法的人工智能。我想通过将特定棋盘状态(这是一个二维列表)的分数添加到字典(最大化器的 checked_states_max 和最小化器的 checked_states_min )来加速人工智能。因为在 python 中,列表不能用作字典键,因为它们是可变的,我该怎么做呢?我担心将其全部转换为元组效率很低。

最佳答案

Zobrist hashing这就是您正在寻找的。

实现一个哈希函数,该函数获取游戏状态(注意,不仅仅是当前棋盘,因为根据之前的移动,王位转换和过路可能无效)并返回单个整数。

关于python - 使用列表作为字典的键的替代方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50593632/

相关文章:

iphone - iPhone编程如何给UIImageview添加注解

python - 将一个字典的键与另一个字典的键与值列表进行比较

python - 在 Python 中使用 ElementTree 解析具有命名空间的 XML

python - Pandas 根据用户事件创建漏斗

python - 为什么程序中的列表会给出意外的输出?

python - 正则表达式:不要将以换行符 (\n) 结尾的字符串与行尾 anchor ($) 匹配

python - 您可以将一个 for 循环嵌套在另一个 for 循环中,并且它们具有相同的循环变量吗?

python - 在Python中使用相同的键在字典中查找不同的值

python - 如何处理列表推导中的异常?

python - 在机器学习中使用三种不同的标签