我是 Python 新手,还有很多东西要学。我做错了什么,你有什么建议吗?
if __name__ == '__main__':
arr = list(map(int, input().strip().split()))
result = filter(lambda x: x != max(arr), arr)
print(max(result))
我是 Python 新手,还有很多东西要学。我做错了什么,你有什么建议吗?
if __name__ == '__main__':
arr = list(map(int, input().strip().split()))
result = filter(lambda x: x != max(arr), arr)
print(max(result))
看起来该程序的目标是找到序列中的第二大。如果只输入一个元素,过滤器会删除该元素,结果为空。这就是你收到错误的原因
我做了一些改变来处理它。请看看这是否有效
arr = list(map(int, input().strip().split()))
result = filter(lambda x: x != max(arr), arr)
if(len(arr)==1):
print(arr[0])
else:
print(max(result))
这意味着您的result变量是一个空序列。在这种情况下,这意味着所有值arr都相同。
因此,如果您不想让它引发错误,请尝试将默认值设置为None,例如:
if __name__ == '__main__':
arr = list(map(int, input().strip().split()))
result = filter(lambda x: x != max(arr), arr)
print(max(result, default=None))