如何将最大数量的索引保存在列表Python中?

时间:2019-04-22 11:01:00

标签: python-3.x

我有一个示例列表: l = [1,2,3,12,4,5,6,12]

我将从最大索引中创建一个索引列表。 (可以是一个最大值或大于两个最大值。)

a=max(l)
dd=[]
for num in l:
    if a==num:
        ind=l.index(a)
        dd.append(ind)        
print(dd)

但是我代码中的输出是:[3,3]我如何到达[3,7]

2 个答案:

答案 0 :(得分:1)

使用enumerate

例如:

l = [1,2,3,12,4,5,6,12]
a=max(l)

dd=[]
for ind, num in enumerate(l):
    if a==num:
        dd.append(ind)        
print(dd)

输出:

[3, 7]

答案 1 :(得分:1)

由于list.index为您提供了第一项的索引,索引始终为3,因此您的先前代码不起作用,因此对于ind=l.index(a),始终为ind=3的值。 / p>

因此,我们需要遍历列表以查找所有最大值的索引。列表理解可以用于此。

l = [1, 2, 3, 12, 4, 5, 6, 12]
#Find the indexes where the value equals maximum value, 
#while iterating over the list using enumerate
max_l = max(l)
li = [idx for idx, val in enumerate(l) if val == max_l]
print(li)
#[3, 7]