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

如何使用显式for循环实现等价于列表推导式的嵌套列表生成

问题:用显式for循环实现嵌套列表的索引提取

现有两个列表:

values = [['bert', '1234', 'xxx', 50], ['ernie', '5678', 'fff', 100]]
required = [1, 3]

需要从values的每个子列表中提取required指定的索引(1和3)对应的元素,生成形如[['1234', 50], ['5678', 100]]的嵌套列表。

已经通过列表推导式解决该问题:

[[x[y] for y in required] for x in values]

但如何用显式的for循环写出等价代码?

尝试了以下代码,但得到扁平列表['1234', 50, '5678', 100],不符合需求:

new_list = []
for x in values:
    for y in required:
        new_list.append(x[y])

解决方案

你之前的代码直接把元素追加到外层列表,没有为每个子列表单独构建内层容器。正确的做法是遍历每个子列表时,先创建一个临时内层列表,把提取到的元素加入其中,再将这个内层列表整体追加到外层列表:

new_list = []
for x in values:
    inner_list = []  # 为当前子列表创建临时存储容器
    for y in required:
        inner_list.append(x[y])
    new_list.append(inner_list)  # 将内层列表加入最终结果

运行这段代码后,new_list的结果就是[['1234', 50], ['5678', 100]],和列表推导式的输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:25:22