我想找出数组的最大值。我在运行代码时遇到了以下索引错误。你知道吗
if line[i] <= line[i + 1] and currentMaximum[0] <= line[i + 1]:
IndexError: list index out of range
如有任何建议或帮助,将不胜感激。你知道吗
with open('C:/Users/Obama/Documents/Scripts/sums.txt', 'r') as f:
currentMaximum = []
i = 0
for line in f:
line = list(map(int, line.split()))
if line[i] <= line[i + 1] and currentMaximum[0] <= line[i + 1]:
currentMaximum[0] = line[i + 1]
elif line[i] >= line[i + 1] and currentMaximum[0] <= line[i]:
currentMaximum[0] = line[i]
else:
continue
i += 1
此代码将查找数组的最大值。至于数组的获取,我就交给你了。注意,使用变量
maxi
是因为max
是关键字。你知道吗修复代码中的错误将为您带来以下好处:
currentMaximum[0]
在进行第一次比较时需要有一个值,因此我首先用0初始化了它。如果您的数据可能都是负数,那么可以使用float("-inf")
。另外,应该为每一行重置i
,并确保i
永远不会超过len(line) - 1
。上面的代码应该运行正常。你知道吗如果消除冗余,代码看起来会简单得多:
或者使用
max
内置函数,结合列表理解和itertools
标准库模块中的chain
函数。你知道吗为什么不使用内置的max函数?你知道吗
若您有多个列表,并且需要找到可以使用列表生成的所有列表中的最大值:
相关问题 更多 >
编程相关推荐