我已经阅读了很多答案,包括this one,因此不重复(特别是我读取值的方式)。是否有更快代码:
mx = 0
for i in range(0, len(self.board)):
for j in range(0, len(self.board[i])):
for k in range(0, len(self.board[i][j]['b'])):
l = self.board[i][j]['b'][k]
mx = max([mx, l.get('id', 0)])
在Python中?也许用map
但我怎么看?
每个"单元"董事会是一个类似的词典
'b'
= dicts数组:每个dicts包含有关游戏片段的信息,例如:{'id':3, 'nb':1, 'kind':'bee'}
。我们可以在同一个单元格上放置多个部分(一个在另一个单元格的顶部)'p'
=如果我们可以将它们放在此单元格上,那么上面各个部分的ID数组'h'
=尚未登上'kind'
件的数组,但我们可以放置此单元格仅供参考我在将整个主板用JSON发送给JavaScript客户端之前预先计算整个主板,这样我就可以在Python中进行所有预先计算,并且必须在JavaScript中编写尽可能少的代码。
答案 0 :(得分:0)
看起来你的电路板上有一些带有单元格的行,每个单元格都有多个部分。
您可以使用列表推导来获取所有ID,然后获取其最大值:
max(piece.get('id', 0) for row in self.board for cell in row for piece in cell['b'])
我不确定它会有多快(将取决于你的电路板有多大),但我很确定它会比3 for循环更快并且在每次迭代时计算最大值。