作为初学者,我不确定我是否正确地提出了问题,但这是我的问题: 我试图定义一个函数,给定一个列表,一个开头和一个结束,程序将在位置'开始'和'结束'之间返回该列表的最大值。这是我的代码:
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是争论有关。
这种方法是否可行?或者我应该尝试一种完全不同的方法吗?
答案 0 :(得分:1)
您将返回单个值的最大值。
您需要改为切片列表:
def eleMax(liste, debut=None, fin=None):
return max(liste[debug:fin])
无需将结束值约束到列表的长度。您可以将debut
和fin
设置为None
,以回退到Python默认值(分别为0
和liste
的长度)