获取使用词典更新方法更新的密钥

时间:2011-07-19 01:52:49

标签: python data-structures dictionary key

使用更新方法时,是否可以获取更改位置的键?

def func(**kw):
    d = {'key0' : 0, 'key1' : 1}
    d.update(**kw)

func(kw0=0, kw1=1)

在上面的代码中,我想要获得键'kw0''kw1'

2 个答案:

答案 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