使用负数作为字符串对列表进行排序会产生意外结果

Moh*_*hit 1 python sorting list

我制作了一个程序来计算列表中的第二大数字。输入是一个被切成列表的字符串。这是代码

score1 = input()
score = score1.split()
score.sort()
maximum = max(score)
count = score.count(maximum)
for i in range(0,count):
    score.pop()
print(max(score))
Run Code Online (Sandbox Code Playgroud)

它对正数工作正常,但如果列表包含负数,我的程序无法产生正确的答案。

对于输入 -7 -7 -7 -7 -6

输出是 -6而不是-7

有什么办法可以改善吗?

tza*_*man 7

由于输入是一个字符串,当您调用时sortmax它们按字典顺序工作,而不是按数字顺序工作。您需要先转换为整数:

score = [int(item) for item in score1.split()]
Run Code Online (Sandbox Code Playgroud)