Gå til innhold

Python: finne "median" paa en list


Gjest Slettet-8fx0y6VV

Anbefalte innlegg

Gjest Slettet-8fx0y6VV
Skrevet

Hei

 

list = [1,2,3,4]

jeg prover aa finne median (paa englelsk, kommer ikke paa hva er paa norsk).

Jeg har list[(len(list))/2], men den virker bare paa lister med et odd nummer av elementer i dem.

Noen som vet om en funksjon eller en hack som kan hjelpe meg?

 

Espen

Videoannonse
Annonse
Skrevet (endret)

Hvis antall elementer er et partall, så er vel medianen definert som snittet av de to elementene i midten?

 

Husk forresten å sortere listen din før du prøver å finne medianen, ser ikke at du nevner sortering i eksempelet (listen er riktignok allerede sortert, men vet du at det alltid er tilfelle?).

Endret av Frank2004
Gjest Slettet-8fx0y6VV
Skrevet

joda, jeg vet at jeg maa sortere listen, og det var grunnen til at jeg skrev [1,2,3] og ikke [2,1,3] :p

 

Medianen ja, det var det paa norsk ;) jeg kunne ikke komme paa hva det var i gaar kveld :p

 

Jeg har en liten ide, men er ikke sikker paa om den vill virke. Skal poste resultatet av testen senere i dag naar jeg kommer hjem.

 

Espen

Skrevet (endret)
Hei

 

list =  [1,2,3,4]

jeg prover aa finne median (paa englelsk, kommer ikke paa hva er paa norsk).

Jeg har list[(len(list))/2], men den virker bare paa lister med et odd nummer av elementer i dem.

Noen som vet om en funksjon eller en hack som kan hjelpe meg?

 

Espen

def find_median(numberList):
   copyNumberList = numberList[:]
   copyNumberList.sort()
   length = len(numberList)

   if length % 2 != 0:  # oddetall
       return numberList[(length - 1) / 2]

   else:
       a = numberList[(length - 1) / 2]
       b = 1 + numberList[(length - 1) / 2]
       return (a + b) / 2.0 # flyttall




partall = [1,2,3,4,5,6]
oddetall = [1,2,3,4,5,6,7,8,9]

print find_median(partall)
>>> 3.5
print find_median(oddetall)
>>> 5

 

tror denne gjør jobben.

 

Jeg kikket litt rundt. Det er faktisk mulig å lage en mer effektiv algoritme der sorteringskravet elimineres. Skal du finne medianen på noen mill samples støtt og satdig, så er det jo verdt moroa ;-)

 

http://en.wikibooks.org/wiki/Computer_Scie...r_4#find-median

Endret av zeitgeist
Gjest Slettet-8fx0y6VV
Skrevet

Takk saa mye :D

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...