Hallo,
ich habe in den letzten Tagen die Python basics gelernt und möchte nun ein wenig sicherer werden.
Gibt es vielleicht eine Seite die kleinere Aufgaben stellt und eine wirklich elegante Lösung anbietet ?
Da ich schon seit längerem programmiere habe ich keine Probleme Lösungen zu finden.
Trotzdem denke ich jedes mal das ich zu festgefahren bin mit statischen Sprachen wie C++ etc und es sicherlich elegantere Lösungen gibt.
Ich möchte einfach nur meine Python skills testen.
Als Beispiel für eine Aufgabe
some_list = ((0,1,2,3,4,5,6,7,8,9),(0,1,2,3,4,5,6,7,8,9),(0,1,2,3,4,5,6,7,8,9))
Wandle die Liste in ein Dictonary um in dem der Key das erste Argument der Liste ist und das Value die restliche Liste.
Soetwas zb
Python skills verbessern
Hier ist ein gutes Beispiel dafür warum es keine gute Idee ist den (vermeintlichen) Typ der Daten in den Bezeichnernamen aufzunehmen. Bei some_list handelt es sich mitnichten um eine Liste sondern um ein Tupel. Eine Änderung der Datenstruktur ist im Verlauf eines Projekts immer wieder möglich/erforderlich und dann gäbe ein Bezeichner mit beschreibendem Typnamen einen völlig falschen Hinweis.kantaki hat geschrieben:some_list = ((0,1,2,3,4,5,6,7,8,9),(0,1,2,3,4,5,6,7,8,9),(0,1,2,3,4,5,6,7,8,9))
Wandle die Liste in ein Dictonary um in dem der Key das erste Argument der Liste ist und das Value die restliche Liste.
Übungsaufgaben habe ich jetzt nicht, aber empfehlenswert sind PEP-8, die Eingabe von import this in IDLE und Code Like a Pythonista: Idiomatic Python.
Die Lösung für die obige Aufgabe könnte wie folgt aussehen. Es ist hier übrigens völlig egal ob man jetzt ein Tupel übergibt oder tatsächlich eine Liste.
Code: Alles auswählen
data = dict(((value[0], value[1:]) for value in some_list))