x = input()
y = map(int, input().split())
score = list(y)
score2 = score.remove(max(score))
print(max(score2))
当我使用输入x = 4和y = 1 2 3 4执行上述代码时,它显示一条错误消息“ NoneType值不可迭代”。最后但前一行'score2 = score.remove(max(score))'返回None值。为什么会这样?我打算创建获取列表中第二大数字的代码
答案 0 :(得分:2)
remove()
中的方法list
不返回任何内容。它就地更改列表。因此,您的score2
值将始终为None
。
校正后的程序应该看起来像(很少进行外观校正,将适用于2个或更高值的输入):
score = sorted(map(int, input().split()))[-2]
print(score)
答案 1 :(得分:0)
您为什么不做-
y=[1, 2, 3, 4]
max_num = max(y)
print(max(num for num in y if num!=max_num))