初始化时更新Python字典

问题描述

我只是在玩Python的字典列表。我发现了这些奇怪的东西-

在初始化任何 Python字典,列表或某些其他数据类型时,您无法执行该数据类型的操作。

# Case 1
d1 = {}
d1.update({'a': 'A'})
print(d1)

# Case 2
d2 = {}.update({'p': 'P'})
print(d2)

输出

{'a': 'A'}
None

奇怪的是,d2都没有初始化,也没有引发任何错误

我对此有何看法?

嗯,Python's interpreter reads code line by line。因此,当它读取行d1 = {}时,它将保存d1,并将其类型(dict)存储在内存中。

但是d2 = {}.update({'p': 'P'})不会发生这种情况

可以对dict对象执行任何dict操作,在第二种情况下,它永远不会启动。 字典对象从未创建

您对此有何看法?

如果我错了,请放弃你的答案并纠正我。我猜可能是。

谢谢

解决方法

dict.update()是没有返回类型的操作。

,

好吧,.update()不会进行字典的更新并且什么也不返回,因此,当您初始化一个空字典并对其进行更新时,它什么也不会返回,并且没有分配给d2。相反,它将像:

d = {}
d.update({'p': 'P'})
print(d)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...