找到相对于列表索引的“当前”最大值列表
给定一个列表 a
,我想知道所有的索引 i
,使得 a[i]>a[j]
对于所有 j<i
都成立。
我可以想到一个简单的循环来实现这个,但我在想有没有什么内置的方法可以做到这一点:
max_values = [a[0]]
indices = [0]
for i, x in enumerate(a):
if x>max_values[-1]:
indices.append(i)
max_values.append(x)
有没有更好的方法呢?
1 个回答
3
这个看起来不是一个需要内置的函数,我之前也没见过。
你的问题没有说明你需要值,只提到了索引,所以在这种情况下你可以简化成
max_value = a[0]
indices = [0]
for i, x in enumerate(a):
if x>max_value:
indices.append(i)
max_value = x
除此之外,你的代码很好,没有需要改进的地方。