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

如何用嵌套推导式优雅实现列表的列表转指定结构字典?

问题描述

我有一个列表的列表,想要将其转换为字典:字典的键为子列表中除第一个元素外的其余元素,值为对应子列表的第一个元素。目前已通过循环实现预期结果,希望找到更优雅的实现方式(比如推导式)。

原循环实现代码:

array = [
    [1, 2, 3],
    [5, 4, 8]
]

out = {}
for x in array:
    y = x[0]
    z = x[1:]
    for k in z:
        out[k] = y 

预期执行结果:

out = {
   2 : 1,
   3 : 1,
   4 : 5,
   8 : 5
}
优雅实现:字典推导式

可以用嵌套的字典推导式来实现,代码更简洁且逻辑和原循环完全一致:

array = [
    [1, 2, 3],
    [5, 4, 8]
]

out = {k: x[0] for x in array for k in x[1:]}

逻辑说明

  • 外层遍历列表中的每个子列表x
  • 内层遍历子列表中除第一个元素外的所有元素k
  • 将每个k作为字典的键,对应子列表的第一个元素x[0]作为值

执行后得到的结果和原循环完全相同:{2: 1, 3: 1, 4: 5, 8: 5}。如果存在重复的键,后面的键值对会覆盖前面的,这和原循环的行为保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 03:03:36