如何用基础代码获取列表中最后一个负数元素的索引
解决列表最后一个负数元素的索引问题
没问题!我来帮你搞定这个需求——找到列表里最后一个负数元素的索引,不管你要正索引还是示例里的负索引都能轻松实现。
先看你的示例列表 n = [1,5,-3,7,3,-1,9],最后一个负数是 -1:
- 它的正索引是
5(从列表开头数,第6个元素) - 它的负索引是
-2(从列表末尾数,倒数第2个元素),这和你给出的预期输出[-2]完全一致。
方法一:反向遍历(高效,适合大列表)
从列表末尾往前找,遇到第一个负数就停止,不需要遍历整个列表,效率更高:
n = [1,5,-3,7,3,-1,9] last_neg_index = None # 从后往前遍历每个元素的索引 for idx in reversed(range(len(n))): if n[idx] < 0: last_neg_index = idx break # 转换成你需要的负索引(如果找到的话) if last_neg_index is not None: negative_index = last_neg_index - len(n) print([negative_index]) # 输出 [-2] else: print([]) # 列表没有负数时返回空列表
方法二:列表推导式(简洁直观)
先收集所有负数的索引,再取最后一个,逻辑清晰易懂:
n = [1,5,-3,7,3,-1,9] # 收集所有负数的正索引 neg_indices = [idx for idx, num in enumerate(n) if num < 0] if neg_indices: # 取最后一个正索引,转换成负索引 last_neg_neg_idx = neg_indices[-1] - len(n) print([last_neg_neg_idx]) # 输出 [-2] else: print([]) # 无负数时返回空列表
补充说明
- 如果你需要正索引,直接输出
[last_neg_index]或者[neg_indices[-1]]即可 - 两段代码都处理了「列表没有负数」的边界情况,避免运行报错
内容的提问来源于stack exchange,提问作者Picesto
相关产品推荐
相关产品推荐

