我把这个字符串给了我想要找到最大值的python代码。
>>> a = ("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6")
>>> a = a.split(" ")
>>> max(a)
>>> 6
有人可以解释一下为什么它不会返回542吗? 最后,我找到了正确的代码:
>>> a = a.split(" ");
>>> a = [int(i) for i in a];
>>> return str(max(a))
但有人可以在前代码中告诉我我的愚蠢行为。
答案 0 :(得分:2)
您还可以通过传递key
max(a.split(), key=int)
'542'
然后让它成为一个int
int(max(a.split(), key=int))
542
答案 1 :(得分:1)
max([int(x) for x in a.split()])
这会将a
转换为整数列表并找到正确的最大值。字符串通过char比较char,比较charcodes。
max(int(x) for x in a.split())
以上工作也可以在不创建列表的情况下作为生成器变体。
答案 2 :(得分:0)
max(map(int, a.split(" ")))
# 542