【问题标题】:Python3 dictionary compare, nested dictionaries with numpy arraysPython3字典比较,嵌套字典与numpy数组
【发布时间】:2020-03-13 21:57:20
【问题描述】:

我想比较python中的字典。我知道我可以简单地做a == b,如果a 和b 是字典。这也适用于嵌套字典,其中 a 和 b 包含字典本身。但是,如果 a 和 b 包含 size>1 的 numpy 数组,则它不起作用:

import numpy as np
a = {"1": np.array([1, 2])}
b = {"1": np.array([1, 2])}
a == b

我收到此错误:

回溯(最近一次通话最后一次):
文件“”,第 1 行,在
ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()

我确实检查了:this post 并从 sumbudu 中找到了 import deepdiff 的建议,这符合我的要求。但是,有没有更简单的方法使用== 并以某种方式捕获错误?

【问题讨论】:

标签: python-3.x numpy dictionary compare


【解决方案1】:

像这样?

def equal_dictionaries(dic1, dic2):
    for key, value in dic1.items():
        key1 = key
        value1 = value
    for key, value in dic2.items():
        key2 = key
        value2 = value
    if np.array_equal(value1, value2) == False or key1 != key2:
        return False
    else:
        return True

【讨论】:

    猜你喜欢
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 2018-09-19
    相关资源
    最近更新 更多