更新pythonic方式更新字典中的现有值

时间:2016-10-18 06:16:31

标签: python dictionary

让我们假设我有一个字典_dict和一个变量n

_dict = {'a': 9, 'b': 7, 'c': 'someValue'}
n = 8

我想只更新一个条目,例如仅当{'b': 7}的值大于n的实际值时才b。 到目前为止我得到的解决方案是

_dict.update({'b': n for key, value in _dict.items() if key == 'b' and n > value})

它提供了{'a': 9, 'b': 8, 'c': 'someValue'}的预期结果。所以现在我的问题是:是否有更短,更pythonic的方式这样做? (最好不要导入额外的模块)

3 个答案:

答案 0 :(得分:13)

如果您只需要更新一个密钥,那么循环是没有意义的:

_dict['b'] = max(_dict['b'], n)

以上将'b'设置为两者的最高值。

答案 1 :(得分:1)

就像那个一样简单

if n > _dict['b']:
    _dict['b'] = n

答案 2 :(得分:1)

if n > _dict['b']:
   _dict['b'] = n