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

如何找出字典列表中存在不同关联值的键

解决方案

核心思路

先统计每个键对应的所有关联值(用集合自动去重),再筛选出值的种类超过1种的键即可。

基础实现代码

x = [{'569014_JR1208': 'COMPL'}, {'607923_A0763': 'ERROR'}, {'564849_1H435': 'COMPL'}, {'564849_1H435': 'COMPL'}, {'569014_JR1208': 'ERROR'}, {'646170_1NK3XJ': 'ERROR'}, {'564849_1H435': 'COMPL'}]

# 统计每个键对应的所有值集合
key_value_set = {}
for item in x:
    key, val = next(iter(item.items()))  # 每个子字典仅含一个键值对
    key_value_set.setdefault(key, set()).add(val)

# 用列表推导式筛选目标键
target_keys = [k for k, vals in key_value_set.items() if len(vals) > 1]

print(target_keys)  # 输出: ['569014_JR1208']

结合字典推导式的紧凑实现

如果想用更简洁的推导式写法,可以借助itertools模块扁平化数据后处理:

import itertools

# 扁平化所有键值对并按键分组
flat_pairs = itertools.chain.from_iterable(d.items() for d in x)
grouped = itertools.groupby(sorted(flat_pairs), key=lambda x: x[0])

# 字典推导式构建键到值集合的映射
key_value_set = {k: {v for _, v in g} for k, g in grouped}

# 筛选结果
target_keys = [k for k, vals in key_value_set.items() if len(vals) > 1]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 02:00:11