Nieuws:

Ubuntu-NL weer online!

Na een periode van technische problemen en een overbelaste server zijn we eindelijk weer bereikbaar.
Samen met Hobbynet, onze sponsor en hostingpartner, hebben we een oplossing gevonden zodat alles weer soepel draait.

Bedankt voor jullie geduld en begrip. We hopen nu weer verder te gaan waar we gebleven waren.

Het team van Ubuntu-NL

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Python probleempje  (gelezen 7464 keer)

Offline BaukeP

  • Lid
Python probleempje
« Gepost op: 2022/11/03, 17:43:09 »
Ik gebruik de volgende functie om de max van bijv. kolom 4 te krijgen van een list of lists.
def get_max_by_col(li, col):
    return max(li, key=lambda x: float(x[col]))[col]

en dat gaat prima!
Ik wil echter ook het eerste veld van de gevonden max list. Is in dit geval de datum.
Een maximale waarde is leuk, maar de datum waarop niet minder!
Dus in de laatste regel ook veld 1:
iets als:  return datum,max(li, key=lambda x: float(x[col]))[col] of
return li[?][0],max(li, key=lambda x: float(x[col]))[col]
Het lukt mij echter niet. Graag wat hulp.
Alvast bedankt, Bauke
« Laatst bewerkt op: 2022/11/03, 17:45:25 door BaukeP »

Offline MKe

  • Lid
Re: Python probleempje
« Reactie #1 Gepost op: 2022/11/03, 20:48:42 »
Kun je niet beter listcomprehensions gebruiken?

Ik zou het zo doen:

def get_max_by_column(li, column):
    max_value = max(li, key=lambda x: float(x[col]))[col]
    datums = [i[0] for i in li if value == max_value]
   # datums is een lijst voor het geval de max_value meerdere keren voorkomt
    return datums, max_value

Voor nette code is het trouwens zowiezo beter om dit te scheiden. Al die lambda's enzo in een regel maakt het zeer onleesbaar.
« Laatst bewerkt op: 2022/11/03, 21:12:07 door MKe »
Mijn blokkendoos blog: http://mke21.wordpress.com/

Offline BaukeP

  • Lid
Re: Python probleempje
« Reactie #2 Gepost op: 2022/11/03, 22:10:38 »
Bedankt MKe,
Ik ga het uitproberen!

Bauke

Offline BaukeP

  • Lid
Re: Python probleempje
« Reactie #3 Gepost op: 2022/11/16, 17:29:04 »
MKe,
Het werkt (uiteraard) uitstekend. Bedankt

Bauke

Offline MKe

  • Lid
Re: Python probleempje
« Reactie #4 Gepost op: 2022/11/18, 13:48:46 »
Graag gedaan.