Python 更新字典中不存在的键

新手上路,请多包涵

如果 key 不在 dict.keys() 中,我想将一个键值对插入到 dict 中。基本上我可以这样做:

 if key not in d.keys():
    d[key] = value

但是有更好的方法吗?或者这个问题的 pythonic 解决方案是什么?

原文由 Xiaochen Cui 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 315
2 个回答

您不需要调用 d.keys() ,所以

if key not in d:
    d[key] = value

足够。没有比这更清晰、更易读的方法了。

您可以使用 dict.get() 再次更新,如果密钥已经存在,它将返回一个现有值:

 d[key] = d.get(key, value)

但我强烈建议不要这样做;这是代码打高尔夫球,阻碍了维护和可读性。

原文由 Martijn Pieters 发布,翻译遵循 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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏