Python“扩展”字典

新手上路,请多包涵

用另一个字典扩展字典同时避免使用 for 循环的最佳方法是什么?例如:

 >>> a = { "a" : 1, "b" : 2 }
>>> b = { "c" : 3, "d" : 4 }
>>> a
{'a': 1, 'b': 2}
>>> b
{'c': 3, 'd': 4}

结果:

 { "a" : 1, "b" : 2, "c" : 3, "d" : 4 }

就像是:

 a.extend(b)  # This does not work

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

阅读 831
2 个回答

这个封闭问题 中的一颗美丽的宝石:

“oneliner way”,既不改变输入口述,是

basket = dict(basket_one, **basket_two)

在此处了解 **basket_two** )的含义

如果发生冲突,来自 basket_two 的项目将覆盖来自 basket_one 的项目。随着一行行的发展,这是非常可读和透明的,并且我不会在任何时候使用它,因为它是两个其他混合的字典派上用场(任何难以理解它的读者实际上会得到很好的服务这促使他或她了解 dict** 形式的方式;-)。因此,例如,使用如下:

 x = mungesomedict(dict(adict, **anotherdict))

在我的代码中经常出现。

最初由 Alex Martelli 提交

注意: 在 Python 3 中,这仅在 basket_two 中的每个键都是 string

原文由 Tom Leys 发布,翻译遵循 CC BY-SA 3.0 许可协议

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