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

论坛 期权论坛 脚本     
匿名技术用户   2020-12-27 03:20   1432   0

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

为了实现 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合并两个字典成一个新字典的几种方法分析比较
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP