Python中有什么方法可以获取包含列表最大值的元素的所有索引?
我已经尝试过了:
list = [1, 3, 2, 2, 1, 1, 1, 2, 3, 2, 1, 1, 1, 3, 1, 1, 3]
m = list.index (max(list))
但是,这仅返回所有具有最大值的索引的第一个索引。
答案 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]