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

如何创建含变量名的嵌套列表?Python多列表处理需求

问题描述

现有多个列表,示例如下:

group1 = ["AS", "AT", "AW"]
group2 = ["Bob", "Steve"]
group3 = ....

想要创建如下新列表(将每个数据点与其所属的列表变量名配对):

combined = [["AS", "group1"], ["AT", "group1"], ["AW", "group1"], ["Bob", "group2"], ["Steve", "group2"]....]

已找到处理单个列表的代码:

one_list_at_time = []
for item in group1:
    temp = item, [i for i, a in locals().items() if a == group1][0]
    one_list_at_time.append(temp)

但无法写出同时处理多个列表的代码,尝试的代码如下(问题出在标注的行):

all_groups = group1 + group2 + .... + groupn

all_data = []

for item in all_groups:
    # 问题出在下面这行
    temp = item, [i for i, a in locals().items() if a == item][0]
    all_data.append(temp)

希望得到简单易实现的方案,仅用group1和group2时,all_data的输出需与上述combined一致。

简单易实现的解决方案

不要通过locals()反向查找变量名,这种方式容易因重复值、变量冲突等问题出错,直接显式将每个列表与对应名字配对处理更可靠:

# 把需要处理的列表和对应的名字打包成元组,存入一个列表
groups_with_names = [("group1", group1), ("group2", group2)]  # 新增列表时,直接添加("group3", group3)即可

all_data = []
for name, group in groups_with_names:
    for item in group:
        all_data.append([item, name])

说明

  1. 先构建groups_with_names,其中每个元素是(列表名字符串, 列表本身)的元组,明确关联列表和它的名字。
  2. 外层循环遍历每一组(名字,列表),内层循环遍历列表中的每个元素,将元素与对应名字组成子列表,添加到all_data中。

这种方式逻辑直白,无额外隐式操作,新手容易理解和扩展,测试group1和group2的场景时,输出完全符合预期的combined结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:39:13