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

如何将嵌套列表解包为多个独立变量?

列表解包为多个独立变量的通用方案

固定数量子列表的场景

如果提前明确子列表的数量,直接用Python的解包语法就能快速实现需求:

scores = [['S', 'R'], ['A', 'B'], ['X', 'Y'], ['P', 'Q']]
a, b, c, d = scores

执行后a、b、c、d会分别指向原列表中的四个独立子列表对象,修改其中一个不会影响其他子列表(示例中为不可变的字符串元素,无需额外拷贝)。

动态数量子列表的通用方案

如果子列表的数量不固定,没法提前写死变量名,可以通过操作全局命名空间字典来动态生成变量:

scores = [['S', 'R'], ['A', 'B'], ['X', 'Y'], ['P', 'Q']]

# 按a、b、c...的顺序生成变量名
for idx, sub_list in enumerate(scores):
    var_name = chr(ord('a') + idx)
    globals()[var_name] = sub_list

如果子列表数量超过26个,可调整命名规则为a1、a2这类格式:

for idx, sub_list in enumerate(scores, start=1):
    var_name = f'a{idx}'
    globals()[var_name] = sub_list

注意事项

动态创建变量会污染命名空间,容易和现有变量重名引发意外问题,不推荐在正式代码中使用。更稳妥的替代方案是使用命名元组,既能实现类似变量名的访问方式,又不会污染命名空间:

from collections import namedtuple

# 生成对应数量的字段名,比如group1、group2...
field_names = [f'group{idx+1}' for idx in range(len(scores))]
ScoreGroups = namedtuple('ScoreGroups', field_names)
groups = ScoreGroups(*scores)

# 访问方式:groups.group1、groups.group2...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 22:42:57