Liste / Array umsortieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Knollo
User
Beiträge: 63
Registriert: Mittwoch 10. Juni 2020, 14:44

Hallochen, ich muss ein Array umsortieren:

Eingabe:

Code: Alles auswählen

[['gestern', 12, 10.5],['heute', 13, 10.6],['morgen', 14, 10.4]]
Ziel:

Code: Alles auswählen

[['gestern', 'heute', 'morgen'],[12, 13, 14],[10.5, 10.6, 10.4]]
Derzeit hab ich es mittels 2 Schleifen umgesetzt, gibt es dafür noch andere Lösungen? numpy?

Danke - Stefan
Benutzeravatar
pillmuncher
User
Beiträge: 1529
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

In specifications, Murphy's Law supersedes Ohm's.
Knollo
User
Beiträge: 63
Registriert: Mittwoch 10. Juni 2020, 14:44

Genau, danke!
Hab in numpy die Methode ' transpose()' gefunden - sollte auch passen.
Aber danke, Problem gelöst. :-)
Benutzeravatar
pillmuncher
User
Beiträge: 1529
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

Knollo hat geschrieben: Samstag 30. November 2024, 20:50 Hab in numpy die Methode ' transpose()' gefunden
Du schießt mit Kanonen auf Spatzen. Schau her:

Code: Alles auswählen

>>> records = [['gestern', 12, 10.5],['heute', 13, 10.6],['morgen', 14, 10.4]]
>>> transposed = list(zip(*records))
>>> transposed
[('gestern', 'heute', 'morgen'), (12, 13, 14), (10.5, 10.6, 10.4)]
In specifications, Murphy's Law supersedes Ohm's.
Knollo
User
Beiträge: 63
Registriert: Mittwoch 10. Juni 2020, 14:44

so einfach? :geek: ... und ich hab richtig Hirnschmalz verbrannt - Danke
Benutzeravatar
__blackjack__
User
Beiträge: 14000
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Ich würde das noch durch `strict` ergänzen: ``list(zip(*records, strict=True))``. Oder `more_itertools.transpose()` verwenden. 😀
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Benutzeravatar
DeaD_EyE
User
Beiträge: 1222
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

__blackjack__ hat geschrieben: Sonntag 1. Dezember 2024, 01:48 Ich würde das noch durch `strict` ergänzen: ``list(zip(*records, strict=True))``. Oder `more_itertools.transpose()` verwenden. 😀
Wieso würdest du das so machen, würde sich ein aufmerksamer Leser fragen.

Ohne strict=True würde zip() solange weitermachen, bis eins der Objekte keine Elemente mehr hat.
Mit strict, wird ein ValueError ausgelöst, wenn eins der Listen kürzer oder länger ist.

Code: Alles auswählen

ValueError: zip() argument 3 is longer than arguments 1-2
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten