问题描述
我只是在玩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)