返回字典时,python的行为类似于JavaScript吗?

奥利维尔·庞斯(Olivier Pons)

我想知道:

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())

我使用Deepcopy是因为我遇到过许多情况,其中不同的变量访问相同的内容。但是,当Python像我的代码一样返回“新”字典时,copy.deepcopy是否需要其他单元格还是像JavaScript一样需要使用吗?

(以及主题之外:我确信我的代码可以通过“ Python方式”进行优化...)

AKS

与其他答案一样,您无需进行复制,因为每次调用它都会get_empty_cell()返回一个新值dict

是的!您可以像这样优化代码:

self.board = [[self.get_empty_cell() for j in range(width)] for i in range(height)]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

JavaScript函数类似于Python range()

Enter键的行为类似于Javascript中的Tab

类似于split()吗?

行为类似于@Entity和@Embeddable的类

如何使用Go创建类似于字典的Python?

Git分支命令的行为类似于“少”

在C#中创建新对象时,{}的行为类似于()吗?

是否有类似于Python Counter函数的Javascript函数?

类似于字典的JSON模式

如何在JavaScript中计时类似于Python timeit的函数

&&运算符的行为类似于|| 算子

Python支持排序字典-类似于C ++ map?

如何用Java创建类似于Python中的字典?

execveat(2)/ fexecve(3)类似于Python子进程的行为

Javascript是否具有类似于python的dict理解的功能?

如何允许字典值枚举的行为类似于Python中的字典键枚举?

当函数的行为类似于类但不使用class关键字或“ new”关键字(在Javascript中)时,该怎么称呼?

Javascript类返回数组,创建类似于jQuery的库

数组引用的行为类似于副本

函数参数的行为类似于Kotlin中的val类型的变量吗?

行为类似于函数的JavaScript变量

tofixed()+ 2的行为类似于tofixed +“ 2”

如何设计行为类似于根类的python类

看起来像str的行为类似于str的行为,但不是str吗?

带有r +的fopen()的行为类似于a?

有什么类似于Java中JavaScript的“原型”吗?

<c:when>的行为是否类似于“ else if”或“ if”?

内联块的行为类似于块

python类的行为类似于字典或列表数据

TOP 榜单

热门标签

归档