如果 key 不在 dict.keys() 中,我想将一个键值对插入到 dict 中。基本上我可以这样做:
if key not in d.keys():
d[key] = value
但是有更好的方法吗?或者这个问题的 pythonic 解决方案是什么?
原文由 Xiaochen Cui 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果 key 不在 dict.keys() 中,我想将一个键值对插入到 dict 中。基本上我可以这样做:
if key not in d.keys():
d[key] = value
但是有更好的方法吗?或者这个问题的 pythonic 解决方案是什么?
原文由 Xiaochen Cui 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 dict.setdefault()
:
>>> d = {'key1': 'one'}
>>> d.setdefault('key1', 'some-unused-value')
'one'
>>> d # d has not changed because the key already existed
{'key1': 'one'}
>>> d.setdefault('key2', 'two')
'two'
>>> d
{'key1': 'one', 'key2': 'two'}
原文由 mhawke 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答850 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
您不需要调用
d.keys()
,所以足够。没有比这更清晰、更易读的方法了。
您可以使用
dict.get()
再次更新,如果密钥已经存在,它将返回一个现有值:但我强烈建议不要这样做;这是代码打高尔夫球,阻碍了维护和可读性。