You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除train_features中不在train_descriptions的键值对以统一长度?

同步两个字典的键:过滤train_features多余项

针对你的需求,有两种高效的处理方式,适用于不同场景:

方法1:生成新字典(推荐,保留原数据)

这种方式不会修改原始的train_features字典,而是创建一个只包含train_descriptions中存在的键的新字典,适合需要保留原数据的场景:

# 将有效键转为集合,提升查找效率(集合的in操作是O(1),远快于字典)
valid_image_keys = set(train_descriptions.keys())
# 用字典推导式过滤出符合条件的键值对
train_features_filtered = {img_name: features for img_name, features in train_features.items() if img_name in valid_image_keys}

处理完成后,train_features_filtered的长度会和train_descriptions一致(44424)。

方法2:原地修改原字典(节省内存)

如果不需要保留原始的train_features,可以直接在原字典上删除多余的键,节省内存开销:

# 先收集所有不在train_descriptions中的键(不能直接遍历字典时删除,会触发异常)
keys_to_delete = [img_name for img_name in train_features if img_name not in train_descriptions]
# 逐个删除多余键
for img_name in keys_to_delete:
    del train_features[img_name]

执行后,原train_features的长度会变为44424。

验证结果

处理完成后可以通过以下代码确认长度一致:

print(len(train_descriptions) == len(train_features_filtered))  # 方法1用这个
# 或者方法2用这个:
print(len(train_descriptions) == len(train_features))

内容的提问来源于stack exchange,提问作者Sticky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 00:10:50