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

Python如何从指定列表生成按唯一值分组的嵌套列表?

解决方法:组合列表元素生成嵌套结构

这其实很简单,不需要依赖特殊的Python函数,用基础的列表操作就能轻松实现你的需求。核心思路是先把var1的所有条目和var2的条目分开,再将它们逐一组合。

方法一:用列表推导式(简洁高效)

这种方式代码更紧凑,适合熟悉Python列表操作的场景:

l1 = [['var1', '2'], ['var1', '5'], ['var1', 'a'], ['var2', '90']]

# 提取所有var1对应的条目
var1_entries = [item for item in l1 if item[0] == 'var1']
# 提取var2对应的条目(这里假设只有一个var2,用next()快速获取)
var2_entry = next(item for item in l1 if item[0] == 'var2')

# 生成目标嵌套列表
result = [[var1_item, var2_entry] for var1_item in var1_entries]

print(result)
# 输出:[[['var1','2'],['var2','90']],[['var1','5'],['var2','90']],[['var1','a'], ['var2','90']]]

方法二:用普通循环(更易理解)

如果刚接触Python,用循环的方式会更直观:

l1 = [['var1', '2'], ['var1', '5'], ['var1', 'a'], ['var2', '90']]

var1_entries = []
var2_entry = None

# 先拆分出var1和var2的条目
for item in l1:
    if item[0] == 'var1':
        var1_entries.append(item)
    elif item[0] == 'var2':
        var2_entry = item

# 组合生成结果
result = []
for var1_item in var1_entries:
    result.append([var1_item, var2_entry])

print(result)

补充说明

如果你的数据里可能有多个var2条目,只需要把var2_entry改成列表,然后在组合时调整逻辑即可。但根据你给出的示例,上述代码完全可以满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:07:47