我在查找列表中每个相似值的索引时遇到问题。
示例:
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不能很好地工作。)
答案 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";}