在初始化时更新 Python dict
Updating Python dict at the time of initialization
我只是在玩 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()
是一个没有 return 类型的操作。
好吧,.update()
字典更新就地 returns 什么都没有,所以当你初始化一个空字典并更新它时,它 returns 什么都没有 None 被分配给 d2
。相反,它会像:
d = {}
d.update({'p': 'P'})
print(d)
我只是在玩 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()
是一个没有 return 类型的操作。
好吧,.update()
字典更新就地 returns 什么都没有,所以当你初始化一个空字典并更新它时,它 returns 什么都没有 None 被分配给 d2
。相反,它会像:
d = {}
d.update({'p': 'P'})
print(d)