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

Google文档脚本问题:如何打印嵌套列表中每个子列表的第二个元素

解决嵌套列表提取元素的问题

嘿,我懂你这种卡壳的感觉!咱们来看看问题出在哪——你不小心给列表多套了一层嵌套,导致取元素的时候绕了弯路。

问题根源

看你代码里的这行:

lst_b.append([cells.entry[i-30].cell.inputValue, cells.entry[i-29].cell.inputValue, cells.entry[i-25].cell.inputValue])

你把三个值打包成了一个新的列表,然后把这个列表append到lst_b里,结果lst_b就变成了[[值1, 值2, 值3]](一个装着列表的列表)。之后你把lst_b加到lst_a里,最终lst_a的结构就成了:

[[[值1, 值2, 值3]], [[值4, 值5, 值6]], ...]

这就是为什么你取lst_a[0]时,拿到的不是预期的三个值,而是又套了一层的嵌套结构。

两种解决办法

办法1:从源头避免多余嵌套

直接创建包含三个值的列表,不用再通过append多套一层:

lst_a = []
for i, cell in enumerate(cells.entry):
    if cell.title.text.startswith('AG') and cell.content.text == '2':
        # 直接生成包含三个目标值的列表
        target_values = [
            cells.entry[i-30].cell.inputValue,
            cells.entry[i-29].cell.inputValue,
            cells.entry[i-25].cell.inputValue
        ]
        lst_a.append(target_values)

# 现在lst_a的结构是[[值1,值2,值3], [值4,值5,值6], ...]
# 提取每个子列表的第二个元素(索引为1,因为Python从0开始计数)
for values in lst_a:
    print(values[1])

办法2:处理已有的嵌套列表

如果不想修改原代码的逻辑,只想从现有的lst_a里提取目标元素,可以这样遍历:

# 遍历lst_a中的每一项
for nested_item in lst_a:
    # nested_item是[[值1,值2,值3]],先取出内部的列表
    inner_list = nested_item[0]
    # 取第二个元素
    print(inner_list[1])

# 或者用列表推导式一次性生成所有第二个元素的列表:
all_second_elements = [item[0][1] for item in lst_a]
print(all_second_elements)

小提示

别忘了Python的列表索引是从0开始的,所以“第二个元素”对应的索引是1,这点你应该已经清楚,但还是再提一下以防出错~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:43:36