使用单独的字典更改字典键?
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
构造函数。)
我正在使用 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
构造函数。)