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

如何在Python 3中从嵌套列表生成指定键值对字典?

实现这个需求的Python 3方案

当然没问题!这里有几种简洁且易读的方法来完成你想要的转换:

方法一:用字典推导式快速实现

这种方式利用Python的切片和zip函数来分组,一行代码就能搞定:

original_list = [[2, 4], [1, 2], [2, 5], [3, 4], [3, 10], [2, 3, 4]]
result = {max(group[0]): group[1] for group in zip(original_list[::2], original_list[1::2])}
print(result)  # 输出: {4: [1, 2], 5: [3, 4], 10: [2, 3, 4]}

代码解释:

  • original_list[::2]:提取列表中偶数索引的子列表(也就是第1、3、5个,对应索引0、2、4)
  • original_list[1::2]:提取列表中奇数索引的子列表(第2、4、6个,对应索引1、3、5)
  • zip(...):把两组子列表两两配对,形成([2,4], [1,2])、([2,5], [3,4])这样的元组
  • 字典推导式遍历这些元组,用每组第一个子列表的最大值作为键,第二个子列表作为值

方法二:用循环实现(更直观,适合新手)

如果你觉得字典推导式有点抽象,用普通循环也能轻松完成,还能处理列表长度为奇数的边界情况:

original_list = [[2, 4], [1, 2], [2, 5], [3, 4], [3, 10], [2, 3, 4]]
result = {}

# 步长设为2,每次处理一对子列表
for i in range(0, len(original_list), 2):
    # 确保不会越界(比如原列表长度为奇数时,最后一个子列表跳过)
    if i + 1 < len(original_list):
        key = max(original_list[i])
        value = original_list[i+1]
        result[key] = value

print(result)  # 输出同样符合需求

额外说明:

如果你的原始列表可能出现长度为奇数的情况(比如最后多一个未配对的子列表),上面的循环会自动忽略这个多余的元素。要是需要对这种情况做特殊处理(比如给它设置默认键),只需要在循环外补充对应的逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:35:05