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

如何通过指定键从Python字典获取键值对?寻求简洁实现方式

解决方案

1. 快速生成目标结构

已知键k(比如k = 'b')和字典d,可以直接生成你需要的结构:

  • 单键值对字典:{k: d[k]}(这是最直接的写法,键是长字符串时,提前把键存成变量能大幅简化代码)
  • 元组:(k, d[k])
  • 列表:[k, d[k]]

如果键名很长,提前赋值给变量是最优解:

long_key = 'very_long_and_complex_key_name'
# 生成单键字典
single_pair_dict = {long_key: d[long_key]}

2. 针对字典合并的场景

你提到要把单个键值对合并到另一个字典并传给函数,原来的写法无法运行是因为d1['b']是值而非字典,推荐这几种简洁写法:

方法一:直接合并单键字典

key = 'b'
# 合并后传入函数
func({**{key: d1[key]}, **d2})

方法二:Python 3.9+ 用字典合并运算符|

如果你的Python版本在3.9及以上,|运算符能更直观地合并字典:

key = 'b'
func({key: d1[key]} | d2)

注意:若d2中存在同名键,{key: d1[key]} | d2会用新值覆盖旧值;如果要保留d2的原有值,调换顺序写成d2 | {key: d1[key]}即可。

方法三:直接解包给函数(适配关键字参数场景)

如果func本身支持接收关键字参数(而非单个字典参数),可以直接解包两个字典:

key = 'b'
func(**{key: d1[key]}, **d2)

这样会把两个字典的所有键值对作为关键字参数传给func。

补充说明

你说得完全正确——用推导式遍历整个字典完全没必要,字典的核心优势就是O(1)的键查找效率,直接通过键取值生成目标结构才是最高效的选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 02:26:02