我在想:
def get_empty_cell():
return {'p': [[], []], 'h': {}, 'b': []}
def create_new_board(old_board):
height = len(old_board) + 4
width = len(old_board[0]) + 4
self.board = [None] * height
for i in range(0, height):
self.board[i] = [None] * width
for j in range(0, width):
# (!) deepcopy()
self.board[i][j] = copy.deepcopy(self.get_empty_cell())
我使用深度复制,因为我有很多不同变量访问相同内容的情况。但是,当Python返回" new"像我的代码中的字典,如果我想要不同的单元格,还是像JavaScript一样,我是否需要使用copy.deepcopy
?
(关于主题:我确定我的代码可以优化" Python方式" ...)
答案 0 :(得分:2)
get_empty_cell()
每次都会从文字中返回一个新字典。没有必要再次复制它。
答案 1 :(得分:2)
与其他答案一样,您无需复制,因为get_empty_cell()
每次调用时都会返回一个新的dict
。
是的!您可以像这样优化代码:
self.board = [[self.get_empty_cell() for j in range(width)] for i in range(height)]