You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用基础代码获取列表中最后一个负数元素的索引

解决列表最后一个负数元素的索引问题

没问题!我来帮你搞定这个需求——找到列表里最后一个负数元素的索引,不管你要正索引还是示例里的负索引都能轻松实现。

先看你的示例列表 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 13:57:39