首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 2 Max函数

Python 2 Max函数
EN

Stack Overflow用户
提问于 2018-08-03 10:12:42
回答 3查看 996关注 0票数 5

以下是我的代码

代码语言:javascript
复制
def max_array_diff(line):
    return max(line)

line = raw_input().split()
print max_array_diff(line)
print line

下面是我得到的输出

代码语言:javascript
复制
9
['1', '9', '2', '-7', '10', '4', '3']

我需要我的输出是10。raw_input()是一个字符串,我已经将它转换成一个列表,并试图从它获得最大值,但它一直返回9而不是10。我做错了什么?

EN

回答 3

Stack Overflow用户

发布于 2018-08-03 10:18:16

您应该在拆分输入后将其转换为整数;否则,您将使用max()进行字符串比较。

更改:

代码语言:javascript
复制
line = raw_input().split()

至:

代码语言:javascript
复制
line = map(int, raw_input().split())

或者,您可以将int指定为max()key函数,以便基于字符串输入的整数值进行比较。

更改:

代码语言:javascript
复制
return max(line)

至:

代码语言:javascript
复制
return max(line, key=int)
票数 7
EN

Stack Overflow用户

发布于 2018-08-03 10:18:29

你需要做整数比较,而不是字符串比较:

代码语言:javascript
复制
def max_array_diff(line):
    return max(line)

line = [int(x) for x in raw_input().split()]
print max_array_diff(line)
print line
票数 2
EN

Stack Overflow用户

发布于 2018-08-03 10:20:07

或者另一种方法是:

代码语言:javascript
复制
print(sorted(raw_input().split(),key=int))

要获得最高的do:

代码语言:javascript
复制
print(sorted(raw_input().split(),key=int)[0])

要获得前3名:

代码语言:javascript
复制
print(sorted(raw_input().split(),key=int)[:3])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51664409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档