合并(Merge) 两个有序字典(OrderedDict) 到一个字典中

Merge 两个 OrderedDict 到一个 OrderedDict 中的可用和不可用方法

文章目录

  • Merge 两个 OrderedDict 到一个 OrderedDict 中的可用和不可用方法
    • 可用方法
    • 不可用方法
    • Reference

为了实现 merge 前后都保持顺序,测试了不少方法,足足花了一个小时左右(从网上获取信息成字典,耗时较长)。所以有必要写出来分享一下。

可用方法

from collections import OrderedDict

#           example: "employ name", "employ ID"
dict_1 = OrderedDict({"Michael": "ali000001",
                      "Maria":   "ali000002",
                      "Steve":   "ali000003"})
dict_2 = OrderedDict({"Joseph":  "ali000004",
                      "Kankan":  "ali000005"})
                      
merge_ordereddict = dict_1.copy()
merge_ordereddict.update(dict_2)

如果 dict_2 原本是无序的,那么 merge_ordereddict 最后仍然会是有序的,前面 dict_1 的顺序保持不变。 dict_1 必须是 OrderedDict type.

不可用方法

  1. python3.5.x support:
    merge_dict = OrderedDict({**dict_1, **dict_2})
    使用 {**dict1, **dict2} 的方式可以合并 dict, 但是不能保证 order。

  2. 使用 collections 的 ChainMap:

    from collections import OrderedDict, ChainMap
    
    merge_ordereddict = OrderedDict(ChainMap(dict_1, dict_2))
    

    使用这种方式,可以 merge dict, 但是不能保证 order。


dict 合并方法的 reference:

Reference

  1. Python合并两个字典成一个新字典的几种方法分析比较

你可能感兴趣的:(#,Python)