如何获取二维列表中元素所在的外层列表索引
如何获取二维列表中指定元素的外层索引?
你直接调用s.index('a')报错的原因是:外层列表的元素是一个个子列表(比如['a','b']),index()方法会在外层列表里寻找完全等于'a'的元素,显然找不到,所以抛出ValueError。
以下是两种可行的实现方式:
方法一:遍历枚举外层列表
通过enumerate()同时获取外层列表的索引和对应的子列表,检查目标元素是否在子列表中:
s = [['a', 'b'], ['c', 'd'], ['e', 'f']] target = 'a' for idx, sublist in enumerate(s): if target in sublist: print(idx) # 输出0 break
方法二:生成器表达式快速查找
用生成器表达式筛选符合条件的索引,通过next()获取第一个匹配的结果:
s = [['a', 'b'], ['c', 'd'], ['e', 'f']] target = 'a' # 找到第一个包含目标元素的外层索引 index = next(idx for idx, sublist in enumerate(s) if target in sublist) print(index) # 输出0
如果需要处理目标元素不存在的情况,可以给next()加默认值,避免抛出StopIteration异常:
index = next((idx for idx, sublist in enumerate(s) if target in sublist), -1) # 元素不存在时返回-1,可根据需求修改默认值
内容的提问来源于stack exchange,提问作者user20647609
相关产品推荐
相关产品推荐

