user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17548
Wohnort: Berlin
|
seahawk1986 schrieb: user_unknown schrieb: Da das kein lauffähiger Code ist und ich kein Python kann muss ich ein wenig raten, was Du da tust.
Der Code ist lauffähig, den kannst du direkt mit einem python3-Interpreter ausführen:
Das war doch schon abgehandelt, oder wofür ist das jetzt interessant?
Wobei man die Anzahl Codezeilen noch deutlich reduzieren kann, wenn man es darauf anlegt - und dann ist Java durch den nötigen Boilerplate-Code auf einmal deutlich länger, denn 4 Zeilen gehen bei Java allein schon für die Klassendeklaration und die main()-Funktion drauf:
Das war aber nicht die Aussage, die ich bestritten habe. Ich hatte behaupet, dass man zum Sortieren bei Java keine mehrere Dutzend Zeilen Code braucht, sondern zum Sortieren nur eine. Das kannst Du mit Phythoncode nicht widerlegen.
Edit: zum zweiten Teil braucht man natürlich Beispieldaten:
| >>> liste_mit_dicts = [{'MEAN': 1.25, 'X': 1, 'Y':3},{'X': 2, 'MEAN': 1.15, 'Y': 2}, {'X': 2, 'MEAN': 1.20, 'Y': 2.5}]
>>> sortierte_liste_mit_dicts = sorted(liste_mit_dicts, key=itemgetter('MEAN')) # Sortiere nach dem MEAN-Key in den Dictionaries
>>> sortierte_liste_mit_dicts
[{'Y': 2, 'X': 2, 'MEAN': 1.15}, {'Y': 2.5, 'X': 2, 'MEAN': 1.2}, {'Y': 3, 'X': 1, 'MEAN': 1.25}]
|
Ach so, MEAN ist nur ein Eintrag in der Map.
| list.sort ((m1, m2) -> ((m1.get ("MEAN").compareTo (m2.get("MEAN")))));
|
Das ist ähnlich, eine Zeile. Mit X, Y wird es etwas länger.
| list.sort ((m1, m2) -> {
Double dx = m1.get ("X").compareTo (m2.get ("X"));
(((dx != 0) ? dx : m1.get ("Y").compareTo(m2.get ("Y"))))
});
|
Könnte man in eine Zeile zwingen, aber das wollte dann niemand lesen müssen.
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11176
Wohnort: München
|
seahawk1986 schrieb: Edit: zum zweiten Teil braucht man natürlich Beispieldaten:
Davor muss man natürlich noch den itemgetter aus dem operator-Modul importieren, sonst meckert er:
| from operator import itemgetter
|
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17548
Wohnort: Berlin
|
Fanatics schrieb: Und nun lieber Threadersteller, siehst Du, was passiert, wenn man nach "Wie oder was ist am besten" fragt → FLAMEWAR! 😉
Glaubst Du, Du Hast schon mal einen Flamewar gesehen? 😉 Hier ist doch alles sehr sachlich und entspannt.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12801
|
Mimosin schrieb:
ich will hier nicht noch alles komplizierter machen, aber als Oldie kann ich noch auf Lazarus (Pascal-/Delphi-Klon) hinweisen. Pascal war jahrelang in Deutschland sehr verbreitet und hat noch viele Anhänger und freie Literatur. In den Foren findest du viel deutschsprachige Hilfe. Als Ausbildungssprache führt es auch einfach in die verschiedensten Sprachkonzepte ein. Gerade grafische Oberflächen sind mit Lazarus extrem einfach zu programmieren.
👍 Pascal ist auf jeden Fall eine recht gute Sprache zum Lernen, weil sie nicht objektorientiert ist, was erst mal eine Dimension von Komplexität weg lässt. Damit kann man sich erst mal mit den grundlegenden Konzepten von Abstraktion vertraut machen. Zeiger (zum Glück ohne Zeiger-Arithmetik) gibt es auch, so dass man rekursive Datenstrukturen aufbauen kann.
|
glasenisback
Anmeldungsdatum: 20. November 2011
Beiträge: 1603
Wohnort: Fernwald (Gießen)
|
rklm schrieb: 👍 Pascal ist auf jeden Fall eine recht gute Sprache zum Lernen, weil sie nicht objektorientiert ist, was erst mal eine Dimension von Komplexität weg lässt. Damit kann man sich erst mal mit den grundlegenden Konzepten von Abstraktion vertraut machen. Zeiger (zum Glück ohne Zeiger-Arithmetik) gibt es auch, so dass man rekursive Datenstrukturen aufbauen kann.
Es gibt auch eine objektorientierte Variante von Pascal. Aber recht hast du trotzdem. Pascal ist eine wunderbare Sprache zum Einstieg ins Programmierung. Habe damals in den 90er auch damit angefangen ernsthafter programmieren zu lernen. Ich finde es schade, dass Pascal nirgendwo mehr gelehrt wird und jeder meint Java wäre die perfekte Sprache für den Einstieg (Weil es eben überall gelehrt wird).
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12801
|
glasenisback schrieb: rklm schrieb: 👍 Pascal ist auf jeden Fall eine recht gute Sprache zum Lernen, weil sie nicht objektorientiert ist, was erst mal eine Dimension von Komplexität weg lässt.
Es gibt auch eine objektorientierte Variante von Pascal.
Ist mir bewusst. Das ist dann aber strenggenommen kein Pascal.
|