大家好,我的部分代码有点问题
所以,例如
target_list = []
lst = [1, 2, 3, 4, 4, 5, 4]
target = 4
if target in lst:
target_list.append(lst.index(target))
return target_list
我想要它返回:
[3, 4, 6]
我认为问题与.index(target)有关,只占用列表的第一个目标。谢谢
答案 0 :(得分:6)
您可以使用enumerate
跟踪索引并使用if
列表理解来过滤和提取与特定值对应的索引:
[i for i, v in enumerate(lst) if v == 4]
# [3, 4, 6]
使用普通循环,如果值为target,则需要初始化索引列表并将索引附加到索引:
index = []
for i in range(len(lst)):
if lst[i] == 4:
index.append(i)
index
# [3, 4, 6]