字典推导式筛选需要的 key

1 阅读1分钟

我的字典数据结构是一个嵌套的 Python 字典,结构如下:

data = {
    '环1期': {...},
    '本期': {...},
    '同期': {...}
}

如果你只想保留 '环1期''本期' 的内容,有以下几种写法:


✅ 方法一:使用字典推导式筛选需要的 key

filtered_data = {k: v for k, v in data.items() if k in ['环1期', '本期']}

✅ 方法二:用 dictkey 显式构造新字典(适合 key 不多)

filtered_data = {
    '环1期': data['环1期'],
    '本期': data['本期']
}

✅ 方法三:如果 key 是变量列表

keep_keys = ['环1期', '本期']
filtered_data = {k: data[k] for k in keep_keys if k in data}

示例结果:

{
  '环1期': {'year': 2025, 'cycle': 18, 'cycle_start': datetime.datetime(2025, 4, 28, 0, 0), 'cycle_end': datetime.datetime(2025, 5, 4, 0, 0)},
  '本期': {'year': 2025, 'cycle': 19, 'cycle_start': datetime.datetime(2025, 5, 5, 0, 0), 'cycle_end': datetime.datetime(2025, 5, 11, 0, 0)}
}

可以根据实际场景选用更适合的一种方式。需要把这个结果用于 DataFrame、比较或其它操作也可以继续问我。