배열에서 가장 높은 값과 가장 낮은 값을 찾아 제외하고 해당 배열의 나머지 숫자를 합산하는 프로그램이 있습니다. 해당 배열에서 가장 높은 숫자 또는 가장 낮은 숫자의 중복이있는 경우를 제외하고 대부분의 임의 입력에서 작동합니다.
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)])
어떤 경우에 I print(sum_array([6, 0, 1, 10, 10]))
이면 17 대신 7 만 반환합니다.
가장 높은 숫자를 완전히 제외했습니다.
프로그램이 중복이 있음을 인식하고 그 중 하나만 합산하여이 경우 17을 반환 할 수 있도록하려면 어떻게해야합니까?
전체 에서 min
및 max
을 뺄 수 sum
있으므로 한 번만 계산됩니다.
a = [6, 0, 1, 10, 10]
sum(a) - max(a) - min(a)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다