Seite 1 von 1

Python skills verbessern

Verfasst: Montag 2. Juli 2012, 12:33
von kantaki
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

Re: Python skills verbessern

Verfasst: Montag 2. Juli 2012, 13:15
von /me
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.
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.

Ü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))