Why -1?

Create a function called middle_element that has one parameter named lst.

If there are an odd number of elements in lst, the function should return the middle element. If there are an even number of elements, the function should return the average of the middle two elements.

def middle_element(lst):
if len(lst) % 2 == 0:
sum = lst[int(len(lst)/2)] + lst[int(len(lst)/2) - 1]
return sum / 2
else:
return lst[int(len(lst)/2)]

print(middle_element([5, 2, -10, -4, 4, 5]))

Output : -7

  1. why -1 ? → sum = lst[int(len(lst)/2)] + lst[int(len(lst)/2) - 1]

The median pair has the middle index, and that index minus one.

s = sorted(sample)
n = len(s)
m = n // 2

return float(s[m] = s[m - 1]) / 2
1 Like