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

求助:如何从字典列表中删除redcap_event_name等三个指定键

如何从字典列表中移除指定键?

首先,你的代码没起作用主要有两个核心问题:

  1. 判断对象错误:你在代码里判断j == 'preliminary_arm_1',但这是redcap_event_name对应的值,而你要删除的是redcap_event_name这个键本身,完全找错了目标。
  2. 删除操作错误:del j只是删除了循环中的临时变量j,并没有对字典本身进行修改——要删除字典里的键,必须直接操作字典对象(也就是循环里的k)。

正确的解决方法

先明确要删除的三个键,然后遍历字典列表中的每个字典,逐个移除这些键:

步骤1:定义要删除的键列表

keys_to_remove = ['redcap_event_name', 'redcap_repeat_instrument', 'redcap_repeat_instance']

步骤2:遍历并删除键

有两种安全可靠的方式:

方式一:检查键存在后删除(避免KeyError)

先确认键在字典中存在,再执行删除操作,防止出现键不存在的报错:

for item in mydict:
    for key in keys_to_remove:
        if key in item:
            del item[key]
方式二:使用dict.pop()(无需检查,不存在时不会报错)

pop()方法的第二个参数是默认值,当键不存在时会返回这个值,不会抛出异常,代码更简洁:

for item in mydict:
    for key in keys_to_remove:
        item.pop(key, None)

处理后的结果

执行上述代码后,你的mydict会变成:

[{'id': '450118',
  'date_today': '2022-11-04',
  'timestamp': '2022-11-04 10:49',
  'doc_source': '1',
  'hosp_id': '45',
  'study_id': '18',
  'participant_name': 'CHAR WA WAN',
  'ipno': '141223',
  'dob': '2020-06-30'},
 {'id': '450118',
  'date_today': '2022-11-04',
  'timestamp': '2022-11-04 10:49',
  'doc_source': '1',
  'hosp_id': '45',
  'study_id': '01118',
  'participant_name': 'CHARIT',
  'ipno': '1413',
  'dob': '2020-06-30'}]

这样就保留了原字典列表的结构,同时精准移除了你指定的三个键。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 17:50:23