使用更新方法时,是否可以获取更改位置的键?
def func(**kw):
d = {'key0' : 0, 'key1' : 1}
d.update(**kw)
func(kw0=0, kw1=1)
在上面的代码中,我想要获得键'kw0'和'kw1'。
答案 0 :(得分:6)
不,一旦update()
被调用,它们与其他键无法区分。
在函数内部,您仍然可以查看kw.keys()
以查看传递了哪些内容
例如
def func(**kw):
d = {'key0' : 0, 'key1' : 1}
d.update(**kw)
print "updated %s"%kw.keys()
func(kw0=0, kw1=1)
答案 1 :(得分:2)
检测已更改密钥的唯一方法是存储原始字典的副本,然后比较更新版本和原始版本。
def func(**kw):
d = {'key0' : 0, 'key1' : 1}
old = dict(d)
d.update(kw)
changed_keys = [key for key in d if old.get(key) != d.get(key)]
print changed_keys