Python中sorted(arr[1:])未生成预期列表的问题咨询
问题分析与解决
为什么sorted(arr[1:])不符合预期?
你搞混了数组切片和排序的逻辑顺序:
arr[1:]是直接截取原数组索引1及之后的所有元素,原数组[7,69,2,221,8974]的arr[1:]结果是[69,2,221,8974],对这个切片排序后自然得到[2,69,221,8974],这和你想要的「去掉最小元素」完全不是一回事。- 你真正需要的逻辑是:先对整个数组排序,去掉最小的那个元素(也就是排序后数组的第一个元素),再处理后续求和。正确的写法是
sorted(arr)[1:]——排序后的原数组是[2,7,69,221,8974],去掉第一个元素后就是你预期的[7,69,221,8974]。
修正后的代码
def miniMaxSum(arr): sorted_arr = sorted(arr) max_sum = sum(sorted_arr[1:]) return str(max_sum) print(miniMaxSum([7,69,2,221,8974]))
内容的提问来源于stack exchange,提问作者singleslit
相关产品推荐
相关产品推荐

