python - Python 中 dict.clear() 和分配 {} 的区别

在 python 中,调用 clear() 和将 {} 分配给字典有区别吗?如果是,那是什么? 示例:

d = {"stuff":"things"}
d.clear()   #this way
d = {}      #vs this way

最佳答案

如果你有另一个变量也引用同一个字典,那就有很大的不同了:

>>> d = {"stuff": "things"}
>>> d2 = d
>>> d = {}
>>> d2
{'stuff': 'things'}
>>> d = {"stuff": "things"}
>>> d2 = d
>>> d.clear()
>>> d2
{}

这是因为分配 d = {} 会创建一个新的空字典并将其分配给 d 变量。这使得 d2 指向旧字典,其中仍有项目。但是,d.clear() 清除了 dd2 都指向的同一个字典。

https://stackoverflow.com/questions/369898/

相关文章:

python - virtualenv和pyenv是什么关系?

python - 为什么函数可以修改调用者感知的某些参数,而不能修改其他参数?

python - 为什么我们不应该在 py 脚本中使用 sys.setdefaultencoding

python - 将迭代器转换为列表的最快方法

linux - 为Linux目录下新创建的文件和子目录设置默认权限?

shell - 如何将文本 append 到文件?

linux - 如何链接到特定的 glibc 版本?

linux - 在新的 linux 内核中上下文切换要慢得多

python - 安装pycurl时出现"Could not run curl-config: [E

linux - 如何使用 Red Hat Linux 上的标准工具随机化文件中的行?