Python 中的多类型存储阵列
Multi-type storage array in Python
我正在 python3.6 编写游戏。棋盘上有一些棋子,它们是class'pawn'的实例。棋盘上还有 巨石 ,它们是 class 巨石的实例。我只想将这些棋子和巨石存储在 数组 中,就像 numpy.array.
我有 2 个问题:
数组中有不同类型的对象,numpy.array
不可能
我怎么能在我的板上表示一个空单元格,因为我不能使用一个与其他对象类型不同的对象。
我该如何解决这两个问题?是否已经有一个对象可以表示网格,一个数组并且接受不同的类型?
使用np.dtype(object)
:np.array(board, dtype=np.dtype(object))
至于空单元格:只需将它们设置为None
。
编辑:正如一些人所建议的,您可能根本不需要 numpy 数组。列表列表或带有元组索引的字典可能会很好地解决您的问题并消除使用 numpy 的开销。
我正在 python3.6 编写游戏。棋盘上有一些棋子,它们是class'pawn'的实例。棋盘上还有 巨石 ,它们是 class 巨石的实例。我只想将这些棋子和巨石存储在 数组 中,就像 numpy.array.
我有 2 个问题:
数组中有不同类型的对象,numpy.array
不可能
我怎么能在我的板上表示一个空单元格,因为我不能使用一个与其他对象类型不同的对象。
我该如何解决这两个问题?是否已经有一个对象可以表示网格,一个数组并且接受不同的类型?
使用np.dtype(object)
:np.array(board, dtype=np.dtype(object))
至于空单元格:只需将它们设置为None
。
编辑:正如一些人所建议的,您可能根本不需要 numpy 数组。列表列表或带有元组索引的字典可能会很好地解决您的问题并消除使用 numpy 的开销。