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

如何高效获取10000个随机数列表中5-500区间元素及其对应索引

问题原因与解决方案

原有代码低效/出错的原因

  • list.index(x)每次调用都会从头遍历整个列表查找目标元素,10000长度的列表会将时间复杂度拉高到O(n²),运行耗时自然极长
  • 如果列表中存在重复元素,index只会返回第一个匹配元素的索引,不仅会得到错误的索引结果,也会导致最终索引数量和元素数量不匹配

正确高效的实现方式

使用enumerate()在单次遍历中同时获取索引和对应元素,仅需O(n)时间复杂度即可完成筛选,且能保证索引和元素的数量完全对应:

# 单次遍历同时存储符合条件的索引和元素,效率最高
element_index = []
elements = []
for idx, val in enumerate(list_10000):
    if 5 <= val <= 500:
        element_index.append(idx)
        elements.append(val)

如果偏好列表推导式的写法,也可以分开生成:

element_index = [idx for idx, val in enumerate(list_10000) if 5 <= val <= 500]
elements = [val for idx, val in enumerate(list_10000) if 5 <= val <= 500]

内容的提问来源于stack exchange,提问作者unicorn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:36:03