【发布时间】:2022-08-17 15:23:49
【问题描述】:
我有这个列表: [1, 2, 3, 6, 1, 3]
我试图获取重复的列表元素的索引。在这种情况下,代码应该返回 0、4,因为在第 0 和第 4 索引处有重复的元素。但是,当我运行我的代码时,我的输出仅显示第 4 个索引的 4,并且也不会打印出第 0 个索引。谁能帮我找出代码中的问题?
lst = [1, 2, 3, 6, 1, 3]
oc_set = set()
res = []
for idx, val in enumerate(lst):
if val not in oc_set:
oc_set.add(val)
else:
res.append(idx)
print(res)
输出:
[4] [4]
-
这answer 有帮助吗?
-
在第一个副本之后,您不会从 oc_set 中删除第一个副本。附加第二个 1 后,3 再次位于第 4 个索引中,并且也添加到 res 中。您只输入了副本而不是“原始”值
-
此代码将查找重复元素的索引,但不会查找该元素第一次出现的索引。