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

如何检查字典中指定的一组键是否具有相同值?

检查字典中指定键组的值是否全部相同

给定如下字典:

my_dict = {
  "a": "x",
  "b": "x",
  "c": "x",
  "d": "y",
  "e": "y",
  "f": "y",
}

需要实现快速方法,判断指定的一组键对应的所有值是否完全相同。例如:

  • 传入["a", "b", "c"]时返回True
  • 传入["b", "c", "d"]时返回False

方案1:集合去重(简洁直观)

提取指定键对应的所有值,转换为集合后,若集合长度为1则说明所有值相同。可先校验所有键是否存在于字典中,避免KeyError。

def check_same_value(d, keys):
    # 检查所有键是否存在
    if not all(key in d for key in keys):
        raise ValueError("部分键不存在于字典中")
    # 提取值并转集合去重
    values = {d[key] for key in keys}
    return len(values) == 1

测试示例:

print(check_same_value(my_dict, ["a", "b", "c"]))  # 输出 True
print(check_same_value(my_dict, ["b", "c", "d"]))  # 输出 False

方案2:基准值对比(高效提前终止)

以第一个键对应的值为基准,遍历剩余键的值,只要发现不相等就立即返回False,无需遍历所有键,在值不同的场景下效率更高。

def check_same_value(d, keys):
    if not keys:
        return True  # 空键组的返回值可根据需求调整
    # 检查基准键是否存在
    if keys[0] not in d:
        raise ValueError(f"键 {keys[0]} 不存在于字典中")
    base_value = d[keys[0]]
    for key in keys[1:]:
        if key not in d:
            raise ValueError(f"键 {key} 不存在于字典中")
        if d[key] != base_value:
            return False
    return True

测试示例:

print(check_same_value(my_dict, ["a", "b", "c"]))  # 输出 True
print(check_same_value(my_dict, ["b", "c", "d"]))  # 输出 False

注意事项

  • 若允许传入空键组,需根据业务需求定义返回值(如返回True或抛出异常)
  • 若无需处理键不存在的场景,可去掉键存在性检查以简化代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:35:05