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

如何用单个函数在Python嵌套列表中查找以-1开头的子列表索引

检查嵌套列表中是否存在以指定元素开头的子列表并获取索引

针对给定的嵌套列表 A = [[-1, 0, 1], [-2, 1, 9], [-3, 0, 7], [-4, 0, 5]],可以通过以下两种无需显式循环(如for/while)的方式实现需求:

方法一:利用next()结合生成器表达式

这种方式会直接返回第一个符合条件的子列表索引,若不存在则捕获StopIteration异常:

A = [[-1, 0, 1], [-2, 1, 9], [-3, 0, 7], [-4, 0, 5]]

try:
    target_idx = next(i for i, sub_list in enumerate(A) if sub_list[0] == -1)
    print(f"存在以-1开头的子列表,索引为 {target_idx}")
except StopIteration:
    print("不存在以-1开头的子列表")

生成器表达式会隐式迭代列表,但无需手动编写循环逻辑,next()会取出第一个满足条件的索引值。

方法二:用map()提取首元素后调用index()

先通过map()提取每个子列表的第一个元素,再用index()查找目标值的位置:

A = [[-1, 0, 1], [-2, 1, 9], [-3, 0, 7], [-4, 0, 5]]

try:
    first_elements = list(map(lambda x: x[0], A))
    target_idx = first_elements.index(-1)
    print(f"存在以-1开头的子列表,索引为 {target_idx}")
except ValueError:
    print("不存在以-1开头的子列表")

map()会隐式遍历子列表提取首元素,index()则直接返回目标值在提取后的列表中的位置,对应原嵌套列表的子列表索引。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 21:12:38