我有一个示例列表: 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]
答案 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]