让我们假设我有一个字典_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的方式这样做? (最好不要导入额外的模块)
答案 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