在列表的已定义部分中查找最大值

时间:2014-12-23 13:59:36

标签: python range max function

作为初学者,我不确定我是否正确地提出了问题,但这是我的问题: 我试图定义一个函数,给定一个列表,一个开头和一个结束,程序将在位置'开始'和'结束'之间返回该列表的最大值。这是我的代码:

def eleMax(liste, debut=0, fin=99999999):
  if fin > len(liste):
      fin=len(liste)
  for i in liste:
      while i in range(liste[debut], liste[fin]):
          return max(i)

然而,似乎有几个问题。在这里,我得到:'列表索引超出范围'。在这段代码的其他版本中,我也一直得到'int object is is iterable',我认为这与debut和fin是争论有关。

这种方法是否可行?或者我应该尝试一种完全不同的方法吗?

1 个答案:

答案 0 :(得分:1)

您将返回单个值的最大值

您需要改为切片列表:

def eleMax(liste, debut=None, fin=None):
    return max(liste[debug:fin])

无需将结束值约束到列表的长度。您可以将debutfin设置为None,以回退到Python默认值(分别为0liste的长度)