当前位置: 首页 > 面试题库 >

dict.clear()与在Python中分配{}之间的区别

贺劲
2023-03-14
问题内容

在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()清除相同的字典,d并且d2两者都指向。



 类似资料:
  • 我有一张按年、月、日划分的蜂巢表

  • 问题内容: 嗨,我对Express中使用res(Express响应对象)和res.locals有一些新手问题。 在其中一个代码示例中研究nodejs时,有一个中间件(messages.js),一个服务器(app.js)和模板(messages.ejs)。查看模板的示例代码。看来尽管将message和removeMessages()分配给了res.locals。您可以使用message或remove

  • 问题内容: VisualVM有两个单独的选项卡,用于采样和分析。在VisualVM中采样和配置文件有什么区别? 问题答案: 意味着要进行大量的线程转储并分析堆栈跟踪。这通常更快,不需要字节码中的运行时更改(这可能会破坏它),但准确性也较低。 表示检测您的类和方法,以便它们在运行时“报告”。这是更准确的,因为它不仅计数完成转储时捕获的那些方法,而且还计算每次检测的方法调用。但是,检测意味着更改了您的

  • 问题内容: 使用漂亮的汤时,“ lxml”与“ html.parser”与“ html5lib”之间有什么区别?您什么时候可以使用另一种以及每种的好处?从我每次使用的时间来看,它们似乎是可互换的,但我确实得到纠正,我应该使用与此处的人员不同的方法。想加深我对这些的理解。我在这里已经阅读了几篇关于此的文章,但它们根本没有涉及太多用途。 范例- 问题答案: 从docs 的优缺点汇总表中: html.p

  • 问题内容: 有人可以解释这个代码吗? 输出: 问题答案: 将对象转换为列表时,它仅使用键。 但是,如果用方括号将其包围,则所有内容都将保持不变,只会使其成为s的列表,其中仅包含一项。 这是因为,当您使用循环遍历时,它也只使用了键: 但是,如果要获取键 和 值,请使用: 使用循环: 但是,当您输入时,它会为您提供: 有点误导:)

  • C# 最吸引人的地方是它与 Java 的区别而不是它们之间的相似性。下面就来介绍一下 C# 与 Java 之间的区别: 序号 Java C# 1 Java 是 Oracle 开发的一种高级、健壮、安全和面向对象的编程语言 C# 是微软开发的在 .Net Framework 上运行的一种面向对象的编程语言 2 Java 语言需要在 Java 运行环境(JRE)下运行  C# 语言需要在公共语言运行库