Python如何查找嵌套列表在所属父列表中的索引位置
报错原因
x.index(list)写法不成立的核心逻辑是:list是Python内置的列表类型对象,而list.index()方法要求传入的是你需要匹配的元素值,而非元素的类型,程序无法在列表中找到值等于list类的元素,自然触发ValueError报错。
解决方案
根据你的需求分为两种场景:
场景1:仅需获取第一个嵌套列表的索引
通过enumerate遍历父列表,配合类型判断即可实现:
x = [12.011, [1.007, 2, 15.999], 4] target_idx = None for idx, item in enumerate(x): if isinstance(item, list): target_idx = idx break print(target_idx) # 输出 1
场景2:获取所有嵌套列表的索引(适配多嵌套列表的通用场景)
用列表推导式实现,输出格式直接匹配你期望的列表格式:
x = [12.011, [1.007, 2, 15.999], 4] all_list_indexes = [idx for idx, item in enumerate(x) if isinstance(item, list)] print(all_list_indexes) # 输出 [1]
额外说明
如果你需要匹配的是特定值的列表而非所有列表类型的元素,直接把目标列表作为参数传给index方法即可,不需要额外遍历:
x = [12.011, [1.007, 2, 15.999], 4] print(x.index([1.007, 2, 15.999])) # 输出 1
内容的提问来源于stack exchange,提问作者Wil
相关产品推荐
相关产品推荐

