比较具有相同键的两个字典的值顺序

时间:2021-01-22 22:25:59

标签: python dictionary

我有两个字典 - 实际标签,用于存储图中每个节点的实际标签,以及预测标签,用于存储图中每个节点的预测标签。它们都包含相同的键,但与每个键关联的值不同。字典中的键是无序的。我的问题是,如果我们在两个字典上都使用 dict.values() 函数,我们能否确保为两个字典获得的值数组将具有相同的顺序。例如,实际和预测数组中的第一个值将对应相同的节点标签等。

1 个答案:

答案 0 :(得分:2)

一般没有。从 Python 3.7 开始,顺序由键插入的顺序决定。因此,只有当两个字典的键插入顺序相同时,这才是正确的。

但是,您可以轻松地使用列表推导式来创建相应的列表。

代码

# actual - name of actual dictionary
# predicted - name of predicted dictionary
# We create two lists which are in sync as (works since we are constructing
# both list based upon ther order keys in dictionary actual
actual_values = [v for _, v in actual.items()]
predicted_values = [predicted[k] for k, _ in actual.items()]