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

嵌套字典内外键互换:如何用Python单行代码实现?

用单行代码实现嵌套字典的键值转置

当然有单行代码的方案啦!你原来的循环写法逻辑清晰易读,要是偏好单行风格的话,可以用嵌套字典推导式来实现,甚至不需要额外导入模块:

original = {'a':{'se':3, 'op':2}, 'b':{'se':4, 'op':3}}
transposed = {k2: {k1: v1[k2] for k1, v1 in original.items()} for k2 in {k for v in original.values() for k in v.keys()}}

如果你的原字典里,每个一级键对应的二级键都是完全一致的(就像你给出的例子这样),还能再简化一步,直接拿第一个一级键的二级键来遍历,省掉集合推导式的步骤:

transposed = {k: {k1: original[k1][k] for k1 in original} for k in original['a'].keys()}

简单解释下逻辑:

  • 外层的字典推导式负责生成转置后的一级键(也就是原字典的二级键)
  • 内层的推导式则遍历原字典的一级键,把对应的键值对映射到新的二级位置上

不过要提一句:单行写法虽然简洁,但可读性会比你原来的循环写法稍弱一些,如果是团队协作场景,原写法其实更友好;但如果是个人项目或者追求代码简洁度,上面的单行方案完全能满足需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:16:52