如何用单个函数在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
相关产品推荐
相关产品推荐

