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

Python不使用enumerate和set获取列表元素所有索引并存入字典

实现思路
  • 手动维护索引计数器,替代enumerate函数的索引获取功能
  • 遍历列表时直接检查元素是否已存在于字典键中,替代set函数的去重遍历逻辑
  • 元素首次出现时在字典中创建对应键,值为存储当前索引的列表;非首次出现时直接将当前索引追加到对应列表即可
完整实现代码
x = [1.2, 2.4, 3.1, 4.0, 5.6, 6.5, 1.2, 3.1, 8.1, 23.6, 29.3]
res_dict = {}
idx = 0
for val in x:
    if val not in res_dict:
        res_dict[val] = []
    res_dict[val].append(idx)
    idx += 1

# 可选:如果仅需要保留重复元素,取消注释下一行即可
# res_dict = {k:v for k,v in res_dict.items() if len(v) >= 2}

print(res_dict)
输出结果
{1.2: [0, 6], 2.4: [1], 3.1: [2, 7], 4.0: [3], 5.6: [4], 6.5: [5], 8.1: [8], 23.6: [9], 29.3: [10]}
代码说明
  • 全程未使用enumerate和set函数,符合要求
  • 仅需遍历列表1次,时间复杂度为O(n),比原示例多次调用count、重复遍历列表的实现效率更高
  • 默认覆盖所有元素,重复元素和唯一元素都会存储全部对应索引,符合预期输出格式要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:36:02