在列表中查找元素的索引

时间:2019-08-27 01:25:17

标签: python

我在查找列表中每个相似值的索引时遇到问题。

示例:

b = ["a", "b", "a", "a", "b", "b"]
for x in b:
    if "a" in x:
        print(b.index(x))

我当前的结果:

0
0
0

预期结果:

0
2
3

(在我的实际情况下,列表中有2到100个相似的值,因此.index不能很好地工作。)

4 个答案:

答案 0 :(得分:3)

使用enumerate

[n for n, i in enumerate(b) if i == 'a']

输出:

[0, 2, 3]

答案 1 :(得分:3)

这是算法问题。 list.index(val)的方法返回要显示的 first 值的索引。如果要查找相似值的所有索引,则需要更改算法。

常见的暴力破解方法如下:

b = ["a", "b", "a", "a", "b", "b"]
for i in range(len(b)):
    if b[i] == 'a':
        print(i)

您可能说过,哪个可能会输出:

0
2
3

答案 2 :(得分:1)

非常简单:

def indices(arr, val):
    return [n for n, x in enumerate(arr) if x == val]

b = ["a", "b", "a", "a", "b", "b"]

print(indices(b, "a"))

答案 3 :(得分:0)

正确的代码:

a:1:{i:0;s:22:{"include/archive/author";}
相关问题