如何找到列表中项目的每次出现并打印其每次出现的索引号?

时间:2019-03-21 01:51:06

标签: python arrays list indexing enumerate

我希望能够查看python列表并打印出每个出现次数的索引号。 示例:

a = ['t','e','s','t']
a.index('t')

当我尝试这段代码时,它只给我 t 的第一个索引号,但是我希望它打印出使用 t 的每个索引号。

4 个答案:

答案 0 :(得分:2)

您可以对enumerate使用列表推导:

a = ['t','e','s','t']
indices = [i for i, x in enumerate(a) if x == 't']

在列表理解范围内,i是当前索引,x是该索引处的值。

答案 1 :(得分:1)

列表理解中使用enumerate进行 t

>>> list1 = ['t','e','s','t']
>>> all_index = [i for i, j in enumerate(list1) if j == 't']
>>> all_index

输出:

[0, 3]

所有元素都带有循环

list1 = ['t','e','s','t']
result = {}
for e in list1:
    result[e] = [i for i, j in enumerate(list1) if j == e]
print(result)

输出:

 {'s': [2], 'e': [1], 't': [0, 3]}

答案 2 :(得分:0)

是的,您可以使用enumerate

[x[0] for x in enumerate(a) if x[1]=='t']

Out[267]: [0, 3]

答案 3 :(得分:0)

def get_indices(my_list, item):
    result = []
    for i in range(len(my_list)):
        if my_list[i] == item:
            result.append(i)
    return result

然后尝试一下...

>>> get_indices(a, "t")
[0, 3]