python - 如何合并三个字典并删除公共键值并按升序重新排列?
问题描述
dict 1={99: [2.35, nan, 4.31], 200: [2.02, nan, nan],314: [1.94, nan, nan],749: [21.75, nan, nan],964: [25.73, nan, nan],1232: [64.42, nan, nan],1486: [95.46, nan, nan],1620: [120.96, nan, nan],1851: [60.19, nan, nan],1886: [57.64, nan, nan],2034: [34.32, nan, nan],2086: [35.16, nan, nan],2368: [25.17, nan, nan]}
dict2={101: [nan, 21.67, nan],287: [nan, 20.23, nan],738: [nan, 77.4, nan],897: [nan, 86.6, nan],1235: [nan, 138.77, nan],1490: [nan, 187.46, nan],1668: [nan, 216.83, nan],1894: [nan, 130.03, nan],2345: [nan, 75.26, 15.9]}
dict3= {99: [2.35, nan, 4.31],205: [nan, nan, 4.08],308: [nan, nan, 3.32],448: [nan, nan, 5.79],570: [nan, nan, 7.04],748: [nan, nan, 10.85],994: [nan, nan, 19.56],1237: [nan, nan, 33.89],1415: [nan, nan, 35.21],1618: [nan, nan, 41.38],1676: [nan, nan, 40.11],1899: [nan, nan, 25.51],1986: [nan, nan, 21.45],2039: [nan, nan, 22.56],2337: [nan, nan, 16.71],2345: [nan, 75.26, 15.9]}
解决方案
如果您使用相对较小的 dict,这是一个直截了当的解决方案:
import numpy as np
from numpy import nan
# here i replicate your data
dict1={99: [2.35, nan, 4.31], 200: [2.02, nan, nan],314: [1.94, nan, nan],749: [21.75, nan, nan],964: [25.73, nan, nan],1232: [64.42, nan, nan],1486: [95.46, nan, nan],1620: [120.96, nan, nan],1851: [60.19, nan, nan],1886: [57.64, nan, nan],2034: [34.32, nan, nan],2086: [35.16, nan, nan],2368: [25.17, nan, nan]}
dict2={101: [nan, 21.67, nan],287: [nan, 20.23, nan],738: [nan, 77.4, nan],897: [nan, 86.6, nan],1235: [nan, 138.77, nan],1490: [nan, 187.46, nan],1668: [nan, 216.83, nan],1894: [nan, 130.03, nan],2345: [nan, 75.26, 15.9]}
dict3= {99: [2.35, nan, 4.31],205: [nan, nan, 4.08],308: [nan, nan, 3.32],448: [nan, nan, 5.79],570: [nan, nan, 7.04],748: [nan, nan, 10.85],994: [nan, nan, 19.56],1237: [nan, nan, 33.89],1415: [nan, nan, 35.21],1618: [nan, nan, 41.38],1676: [nan, nan, 40.11],1899: [nan, nan, 25.51],1986: [nan, nan, 21.45],2039: [nan, nan, 22.56],2337: [nan, nan, 16.71],2345: [nan, 75.26, 15.9]}
# merge the dict's
dict_unsorted = {**dict1, **dict2, **dict3}
# put the keys in a list and sort them
keys = list(dict_unsorted.keys())
keys.sort()
# make a sorted list
dict_sorted = {}
for key in keys:
dict_sorted[key] = dict_unsorted[key]
推荐阅读
- python-3.9 - 遍历父文件夹中的每个子文件夹,并删除每个子文件夹中修改日期大于 x 天的所有文件和文件夹
- node.js - 命名空间“NodeJS”没有导出成员“Global”
- java-native-interface - 如何在 JNI 中使用自定义类类型参数调用 Java 函数
- matlab - 在 Matlab 中为二进制占用网格图设置边界
- spartacus-storefront - 延迟加载不适用于我在 Sparatcus 3.x 中的自定义模块之一,但适用于其他模块
- ms-access - SQL 视图中的 CHECK 语法在 MS Access 中失败
- cpanel - cpanel 托管的 public_html 目录中有很多 0kb 文件
- python - 什么时候 await 将暂停 python 中等待对象的执行?
- makefile - makefile 中的多选菜单
- reactjs - React + Jest:测试 setTimeOut 没有被调用