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

如何获取列表中多次出现的指定值的全部索引位置

实现获取列表中1-30每个数值所有出现索引的方案

推荐优先使用单次遍历统计的方案,时间复杂度最低,仅需遍历一次原列表即可完成所有数值的索引收集:

# 替换为你的实际长列表
source_list = [3, 1, 15, 30, 2, 3, 1, ...]

# 初始化结果字典,1-30每个数值初始对应空列表
index_map = {num: [] for num in range(1, 31)}

# 遍历列表同时收集索引
for idx, value in enumerate(source_list):
    index_map[value].append(idx)

运行完成后,index_map[数值]即可直接取出对应数值的所有出现位置索引。

如果你坚持要基于index()方法实现,可以通过指定查找起始位置的方式获取所有匹配项,该方案需要多次遍历列表,效率低于上述方案,仅适合短列表场景:

source_list = [3, 1, 15, 30, 2, 3, 1, ...]
index_map = {}

for target_num in range(1, 31):
    positions = []
    search_start = 0
    while True:
        try:
            # 从search_start位置开始查找目标值
            current_pos = source_list.index(target_num, search_start)
            positions.append(current_pos)
            # 下一次从当前位置的下一位开始查找
            search_start = current_pos + 1
        except ValueError:
            # 找不到目标值时跳出循环
            break
    index_map[target_num] = positions

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:39:03