技术问询:如何获取列表中长度为1的对象的索引?
获取列表中长度为1的对象的索引
我来帮你搞定这个问题!要拿到列表里长度为1的对象对应的索引,核心就是要同时遍历元素的索引和元素本身,Python里的enumerate()函数正好能完美解决这个需求。
方法一:简洁的列表推导式
这是最常用的写法,一行代码就能完成筛选:
# 假设你的对象列表是obj_list obj_list = [[1], ["a", "b"], [3], [4,5,6]] # 筛选出所有长度为1的对象的索引 target_indices = [idx for idx, obj in enumerate(obj_list) if len(obj) == 1] print(target_indices) # 输出: [0, 2]
方法二:直观的循环遍历
如果觉得列表推导式不够直观,也可以用普通循环来实现,逻辑完全一致:
target_indices = [] obj_list = [[1], ["a", "b"], [3], [4,5,6]] for idx, obj in enumerate(obj_list): if len(obj) == 1: target_indices.append(idx) print(target_indices) # 输出: [0, 2]
为什么这个方法能解决你的问题?
你之前的方法应该是只遍历了列表里的对象本身,没有同时跟踪它们的索引位置。而enumerate()会在遍历过程中,给每个元素配上它在列表里的索引值,这样我们就能在筛选出长度为1的对象时,直接把对应的索引保存下来。
内容的提问来源于stack exchange,提问作者P_Grace
相关产品推荐
相关产品推荐

