使用单独的字典更改字典键?

Changing dictionary keys using a separate dictionary?

我正在使用 CIFAR 10 数据集并想创建一个函数,其中 returns 每个 class 的图像数量。我有一个字典 classes_dict 将 class 名称映射到值,见下文:

classes_dict= {'airplane': 0, 
'automobile': 1, 
'bird': 2, 
'cat': 3, 
'deer': 4, 
'dog': 5, 
'frog': 6, 
'horse': 7, 
'ship': 8, 
'truck': 9}

还有一个字典 images_per_class 计算每个 class:

的频率
from collections import Counter

img_per_class = Counter(y_train)
img_per_class

Counter({0: 5000,
         1: 5000,
         2: 5000,
         3: 5000,
         4: 5000,
         5: 5000,
         6: 5000,
         7: 5000,
         8: 5000,
         9: 5000})

我想更改 images_per_class 中的密钥,使其与正确的 class 名称相对应。期望的输出:

{'airplane': 5000,
 'automobile': 5000,
 'bird': 5000,
 'cat': 5000,
 'deer': 5000,
 'dog': 5000,
 'frog': 5000,
 'horse': 5000,
 'ship': 5000,
 'truck': 5000} 

您可以使用 dict-comprehension。

result = {k: img_per_class[v] for k, v in classes_dict.items()}

(如果你必须有一个 Counter,你可以将这个字典传递给 Counter 构造函数。)