Gå til innhold

Python: finne "median" paa en list


Gjest Slettet-8fx0y6VV

Anbefalte innlegg

Gjest Slettet-8fx0y6VV

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

Lenke til kommentar
Videoannonse
Annonse

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
Lenke til kommentar
Gjest Slettet-8fx0y6VV

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

Lenke til kommentar
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
Lenke til kommentar

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...