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

如何在仅含目标键的两个dict中取值且不使用if语句?

不用if语句获取字典中对应键的值

已知两个字典d1、d2,键k恰好存在于其中一个字典中,不用if语句的话,可以用以下几种方式实现取值:

  • 借助字典get()方法(推荐):
    字典的get()方法可以指定键不存在时的默认返回值,结合题目中“k必在其中一个字典”的前提,直接写:

    return d1.get(k, d2[k])
    

    这个方法最可靠,哪怕键对应的值是0、空字符串''这类假值也不会出错,因为get()仅在键不存在时才返回默认值。

  • 合并字典后取值:
    因为k只存在于一个字典中,合并两个字典不会出现键冲突,直接取合并后字典的k值即可:

    • Python 3.9及以上版本可用|运算符合并:
      return (d1 | d2)[k]
      
    • 兼容更早Python版本的解包合并方式:
      return {**d1, **d2}[k]
      
  • 逻辑或判断(谨慎使用):
    如果能确保k对应的取值不会是0、''、False这类假值,也可以用逻辑或:

    return d1.get(k) or d2[k]
    

    但如果值本身是假值,这个方法会误判(比如d1中k对应0,会错误返回d2[k]),所以非必要不推荐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 19:22:44