一个深度合并函数。

mergedeep的Python项目详细描述


mergedeep

PyPi releasePyPi versionsDownloadsDocumentation Status

一个深度合并函数。

Check out the mergedeep docs

安装

$ pip install mergedeep

用法

merge(target: Map[KT, VT], *sources: Map[KT, VT], strategy: Strategy = Strategy.REPLACE) -> Map[KT, VT]

不改变源指令的深度合并

frommergedeepimportmergea={"keyA":1}b={"keyB":{"sub1":10}}c={"keyB":{"sub2":20}}merged=merge({},a,b,c)print(merged)# {"keyA": 1, "keyB": {"sub1": 10, "sub2": 20}}

深入合并现有的D.T.P/P>

frommergedeepimportmergea={"keyA":1}b={"keyB":{"sub1":10}}c={"keyB":{"sub2":20}}merge(a,b,c)print(a)# {"keyA": 1, "keyB": {"sub1": 10, "sub2": 20}}

合并策略:

  1. 替换(default
# Strategy.REPLACE# When `target` and `source` values are the same, replace the `target` value with one from `source` (default).# Note: with multiple sources, the `last` source value with be what appears in the merged result. frommergedeepimportmerge,Strategytarget={"key":[1,2]}source={"key":[3,4]}merge(target,source,strategy=Strategy.REPLACE)# same as: merge(target, source)print(target)# {"key": [3, 4]}
  1. 添加剂
# Strategy.ADDITIVE# When `target` and `source` values are both either `list`, `tuple`, or `set`, extend/update `target` with values from `source` collection.frommergedeepimportmerge,Strategytarget={"key":[1,2]}source={"key":[3,4]}merge(target,source,strategy=Strategy.ADDITIVE)print(target)# {"key": [1, 2, 3, 4]}
  1. 类型安全
# Strategy.TYPESAFE# When `target` and `source` values are of different types, raise `TypeError`.frommergedeepimportmerge,Strategytarget={"key":[1,2]}source={"key":{3,4}}merge(target,source,strategy=Strategy.TYPESAFE)# TypeError: target type: <class 'list'> differs from source type: <class 'set'> for key: "key"

许可证

麻省理工学院

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
主类中的java访问方法   Javalog4j不读取它的log4j。属性文件   雅加达ee通过Java(web应用程序)使用iText/任何其他使用现成数据的库生成PDF报告   lua使用java阅读TeamSpeak 3消息   将日期转换为BST java   java Spring引用ProxyFactoryBean中带有ref的protoyype bean   如何使java只打印一条带有if语句的消息   java如何通过JavaMail从雅虎服务器发送电子邮件?   使用百分比和BigDecimal的java测试   java如何对字符串数组排序   java验证器+MVC+REST::更新问题   java如何阻止eclipse如此频繁地挂起?   java从AsyncTask(片段内)访问TextView   IDEJava:制作可调整大小和拖动的组件