Я пытаюсь создать код, который находит медианы
def find_median_five(L):
L.sort()
return L[len(L)//2]
def MoM(L, k):
if len(L) == 1: # no more recursion
return L[0]
i = 0
A, B, M, medians = [], [], [], []
while i+4 < len(L):
medians.append(find_median_five(L[i: i+5]))
i+=5
if i < len(L) and i+4 >= len(L):
medians.append(find_median_five(L[i:]))
mom = MoM(medians, len(medians)//2)
for v in L:
if v < mom: A.append(v)
elif v > mom: B.append(v)
else: M.append(v)
if len(A)>=k: return MoM(A,k)
elif len(A)+len(M): return MoM(B,k-len(A)-len(M))
else: return mom
n, k = (int(x)for x in input().split())
L = [int(x) for x in input().split()]
print(MoM(L, k))
Это мой текущий код, и он работает нормально. Но то, что я хочу сделать, это изменить часть def find_median_five (L). Поэтому я перешел на этот
def find_median_five(L):
L_len=len(L)
if(L==0): return None
median=int(L_len/2)#
if (L_len%2==1): return L[median]
else: return (L[median-1]+L[mendian])/2
, он вообще не работает, и я знаю, что мой измененный код испорчен. Но понятия не имею, где это исправить или изменить. не могли бы вы мне помочь?