我有一个程序可以找到数组中的最高和最低值,排除它们,然后总结该数组中的其余数字。它适用于大多数随机输入,除非该数组中存在最高或最低数字的重复项
def sum_array(arr):
if arr is None:
return 0
if len(arr) < 2:
return 0
return sum([i for i in arr if i != max(arr) and i != min(arr)])
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果 I print(sum_array([6, 0, 1, 10, 10]))
,它只返回 7 而不是 17。
它完全排除了最高数字。
我如何让程序识别出有重复项并只取其中之一作为总和,在这种情况下,它可以返回 17?