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

C#中如何访问列表的列表里当前列表的上一个元素?

解决嵌套列表中访问相邻子列表的问题

嘿,我明白你遇到的困惑了!你之所以没法直接在子列表上用-1或+1来访问相邻子列表,核心原因是你遍历的是子列表本身(比如[1,2]这样的对象),而不是它们在父列表里的位置索引。直接对列表对象用索引操作自然会报错,因为那是针对列表内部元素的用法,不是针对它在父列表里的位置~

下面给你两种实用的解决方法:

方法1:通过索引遍历(最直观)

用enumerate()函数同时获取子列表的索引和对应的子列表,这样就能通过索引的加减来访问相邻的子列表了。记得要处理边界情况,避免索引越界:

# 示例嵌套列表
list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

for idx, current_sub in enumerate(list_of_lists):
    # 访问上一个子列表:只有当前索引大于0时才存在
    if idx > 0:
        prev_sub = list_of_lists[idx - 1]
        print(f"当前子列表{current_sub}的上一个子列表是:{prev_sub}")
    
    # 访问下一个子列表:只有当前索引小于父列表长度-1时才存在
    if idx < len(list_of_lists) - 1:
        next_sub = list_of_lists[idx + 1]
        print(f"当前子列表{current_sub}的下一个子列表是:{next_sub}")

方法2:跟踪相邻元素(适合不需要索引的场景)

如果你不想用索引,也可以用变量来保存上一个子列表;如果要找下一个,还可以借助itertools.pairwise(Python 3.10+支持)来直接遍历相邻对子:

跟踪上一个子列表

list_of_lists = [[1, 2], [3, 4], [5, 6]]
prev_sub = None

for current_sub in list_of_lists:
    if prev_sub is not None:
        print(f"当前子列表{current_sub}的上一个是:{prev_sub}")
    # 更新prev_sub,供下一次循环使用
    prev_sub = current_sub

遍历下一个子列表(用itertools)

from itertools import pairwise

list_of_lists = [[1, 2], [3, 4], [5, 6]]
for current_sub, next_sub in pairwise(list_of_lists):
    print(f"当前子列表{current_sub}的下一个是:{next_sub}")

简单来说,只要你拿到子列表在父列表中的位置信息(索引),或者提前跟踪好相邻元素,就能轻松访问上一个/下一个子列表啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:57:46