如何在一组整数中找到最大的数字而不将数字转换为列表/字符串?



这很难解释,但是我希望编译器将这些值一起识别为一个长数字,而不是将每个数字视为一个单独的数字。

例如,这是我的字符串输出:
42202
47224
44807
51289
58056
51258
48079
16156
38954
9

(9,因为它认为最大的数是9,而这里显然不是)

这是我的代码:

def main():
totalSum = 0
data = open('input.txt', 'r')
elvesList = data.readlines()
for line in elvesList:
line.rstrip()
if (line[0] != 'n'):
totalSum += int(line)

else: 
aString = str(totalSum)
print(aString)
totalSum = 0
continue
highestValue(aString)
return str(aString)

def highestValue(aString):
print(max(aString))

main()

因为它是一个字符串,代码将每个数字识别为它自己的数字,所以像'4','2','2','0','2'而不是42202。我怎样才能让它识别数字为42202而不将其转换为int?

我不能将其转换为int类型,因为我想使用max()函数找到最大的数字,并且我不能在int类型上使用max(),因为编译器抱怨'int'对象不可迭代。

我不能将其转换为int类型,因为我想使用max()函数来找到最大的数字,并且我不能在int类型上使用max(),因为编译器抱怨'int'对象不可迭代

是的,你可以做那些事情,如果你用正确的方法去做。

读取文件中的行,将每行转换为整数,将整数放入列表中,并在列表中调用max()

with open('input.txt') as data:
numbers = [int(line) for line in data if line.strip()]
print(max(numbers))

最新更新