以下是我的代码
def max_array_diff(line):
return max(line)
line = raw_input().split()
print max_array_diff(line)
print line下面是我得到的输出
9
['1', '9', '2', '-7', '10', '4', '3']我需要我的输出是10。raw_input()是一个字符串,我已经将它转换成一个列表,并试图从它获得最大值,但它一直返回9而不是10。我做错了什么?
发布于 2018-08-03 10:18:16
您应该在拆分输入后将其转换为整数;否则,您将使用max()进行字符串比较。
更改:
line = raw_input().split()至:
line = map(int, raw_input().split())或者,您可以将int指定为max()的key函数,以便基于字符串输入的整数值进行比较。
更改:
return max(line)至:
return max(line, key=int)发布于 2018-08-03 10:18:29
你需要做整数比较,而不是字符串比较:
def max_array_diff(line):
return max(line)
line = [int(x) for x in raw_input().split()]
print max_array_diff(line)
print line发布于 2018-08-03 10:20:07
或者另一种方法是:
print(sorted(raw_input().split(),key=int))要获得最高的do:
print(sorted(raw_input().split(),key=int)[0])要获得前3名:
print(sorted(raw_input().split(),key=int)[:3])https://stackoverflow.com/questions/51664409
复制相似问题