繁体   English   中英

查找列表的最大值(Python)

[英]Finding maximum value of a list(Python)

这是我的功能:

def listMaxInd(l):
    max_val = l[0]
    maxIndex = 0
    count_assigment = 1
    count_comparison = 0
    for i in range(1,len(l)):
        count_comparison=count_comparison+1
        if l[i]>max_val:
            max_val=l[i]
            maxIndex=l.index(max_val)
            count_assigment = count_assigment + 1

    return maxIndex,count_assigment,count_comparison

我想通过分配索引而不是通过分配值来查找列表的最大值。

在我的版本还是分配值。 没有这个可以找到最大值吗?

如果您需要使用循环而不能使用max()函数,那么您将不得不分配至少指向目前为止找到的最大值的索引:

max_index = 0
for i, value in enumerate(l):
    if value > l[max_index]:
        max_index = i

循环完成后, max_index指向l的最大值(的第一次出现)。 enumerate()是一种在循环中生成索引以及迭代值的更紧凑,更有效的方法。

更有效的方法是将max()函数与以下键配合使用:

max_index = max(range(len(l)), key=l.__getitem__)

这将返回列表l最大值的(第一个)索引; 给定索引列表( range(len(l)) ),它将找到l.__getitem__()返回l.__getitem__()的索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM