获取列表中所有最大值的索引

时间:2019-05-12 21:02:18

标签: python

Python中有什么方法可以获取包含列表最大值的元素的所有索引?

我已经尝试过了:

list = [1, 3, 2, 2, 1, 1, 1, 2, 3, 2, 1, 1, 1, 3, 1, 1, 3]
m = list.index (max(list))

但是,这仅返回所有具有最大值的索引的第一个索引。

2 个答案:

答案 0 :(得分:4)

尝试一下:

l = [1, 3, 2, 2, 1, 1, 1, 2, 3, 2, 1, 1, 1, 3, 1, 1, 3]
mx = max(l)
m = [i for i,j in enumerate(l) if j==mx]

输出

[1, 8, 13, 16]

答案 1 :(得分:2)

您可以计算max,然后使用列表推导来获取找到max的索引:

l = [1, 3, 2, 2, 1, 1, 1, 2, 3, 2, 1, 1, 1, 3, 1, 1, 3]
x = max(l)

m = [i for i in range(len(l)) if l[i] == x]

print(m)

输出:

[1, 8, 13, 16]