如果我用Python创建字典,
x = {'a': {'b': 5, 'c': 6}, 'c':{'d': 10}}
并希望按如下方式替换一个条目:
x = {'a': {'b': 5, 'e': 4}, 'c':{'d': 10}}
我该怎么做?谢谢!
答案 0 :(得分:4)
你想做的不是替代品。这是两个操作。
if (count($_POST) > 0) {
键:c
del x['a']['c']
要替换相同键的值,您只需为该键指定一个新值x['a']['e']=4
答案 1 :(得分:-1)
您可以使用词典理解:
x = {'a': {'b': 5, 'c': 6}, 'c':{'d': 10}}
new_x = {a:{'e' if c == 'c' else c:4 if c == 'c' else d for c, d in b.items()} for a, b in x.items()}
输出:
{'a': {'b': 5, 'e': 4}, 'c': {'d': 10}}
或者,使用递归横向未知深度的字典:
x = {'a': {'b': 5, 'c': 6}, 'c':{'d': 10}}
def update_dict(target, **to_become):
return {a:{to_become.get(c, c):to_become['new_val'] if c in to_become else d for c, d in b.items()} if all(not isinstance(h, dict) for e, h in b.items()) else update_dict(b, **to_become) for a, b in target.items()}
print(update_dict(x, c = 'e', new_val = 4))
输出:
{'a': {'b': 5, 'e': 4}, 'c': {'d': 10}}