在列表

时间:2017-03-09 04:27:22

标签: python list

大家好,我的部分代码有点问题

所以,例如

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)有关,只占用列表的第一个目标。谢谢

1 个答案:

答案 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]