You need to enable JavaScript to run this app. Python如何遍历字典值生成剔除对应键的关联数值新字典
优惠活动
大模型
产品
解决方案
定价
更多

Python如何遍历字典值生成剔除对应键的关联数值新字典

实现方案
  • 不需要特意将原字典转换为列表的列表形式,原字典的原生结构本身就适配遍历处理逻辑,提前转结构反而会增加额外的转换步骤,提升出错概率。

核心处理逻辑

  • 预拆分原字典中存储的逗号分隔字符串,避免后续重复执行字符串拆分操作
  • 以原字典的所有键作为新字典的键,初始化空列表作为每个键的初始值
  • 针对新字典中的每一个目标键,逐一遍历原字典的所有条目:
    • 筛选出条目的数字列表中包含该目标键的条目
    • 从筛选出的条目中剔除掉等于目标键本身的数值
    • 将所有收集到的数值拼接为逗号分隔的字符串,存入新字典对应键的列表中

可直接运行的代码

# 原输入字典
dict_in = {'6': ['2,9,8,10'], '1': ['3,5,8,9,10,12'], '4': ['2,5,7,8,9'], '2': ['3,4,7,6,13'], '12': ['1,7,5,9'], '3': ['9,11,10,1,2,13'], '10': ['1,3,6,11'], '5': ['4,1,7,11,12'], '13': ['2,3'], '8': ['1,6,4,11'], '7': ['5,2,4,9,12'], '11': ['3,5,10,8'], '9': ['12,1,3,6,4,7']}

# 预拆分字符串为数字列表
preprocessed = {}
for origin_key, value_list in dict_in.items():
    preprocessed[origin_key] = value_list[0].split(',')

# 初始化输出字典
dict_out = {key: [] for key in dict_in.keys()}

# 逐键处理数据
for target_key in dict_out.keys():
    collected_nums = []
    for origin_nums in preprocessed.values():
        # 仅处理包含当前目标键的条目
        if target_key in origin_nums:
            # 剔除目标键本身的数值,收集剩余数字
            filtered_nums = [num for num in origin_nums if num != target_key]
            collected_nums.extend(filtered_nums)
    # 拼接为指定格式,存入对应键下
    dict_out[target_key].append(','.join(collected_nums))

运行上述代码后,输出字典的结构和你提供的示例格式完全匹配:比如键'6'对应的输出值为['3,4,7,13,1,3,11,1,4,11,12,1,3,4,7'],和示例给出的拼接规则一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 12:15:03