Seite 2 von 2

Verfasst: Donnerstag 12. November 2009, 14:09
von Twilo
Hallo,
pillmuncher hat geschrieben:

Code: Alles auswählen

def ungroup(d): 
    return zip(*d.values())
wo kann ich mehr über das Sternchen erfahren?

Die ungroup Methode müßte nur noch statt 3 Tuples 3 Listen zurückgeben.

Kann man irgendwie die zip-Funktion dazu bewegen, dass sie listen statt tuples zurückgibt?
Ansonsten könnte ich auch folgendes verwenden:

Code: Alles auswählen

def ungroup(d):
    return [list(e) for e in zip(*d.values())]
mfg
Twilo

Verfasst: Donnerstag 12. November 2009, 14:55
von pillmuncher
Twilo hat geschrieben:
pillmuncher hat geschrieben:

Code: Alles auswählen

def ungroup(d):
    return zip(*d.values())
wo kann ich mehr über das Sternchen erfahren?
Im Python Tutorial, Punkt 4.7.4. Der Punkt 4.7.3 darüber könnte zum Verständnis wichtig sein.

Es wäre übrigens besser gewesen, wenn ich gleich itertools.izip verwendet hätte:

Code: Alles auswählen

from itertools import izip

def group(ns, ts, vs):
    return dict(izip(ns,izip(ns,ts,vs)))

def ungroup(d):
    for e in izip(*d.values()):
        yield list(e)
ungroup ist so schöner, finde ich.

Gruß,
Mick.

Verfasst: Donnerstag 12. November 2009, 15:06
von Zap
Nice ;) Und schon wurde wieder ein Problem aufs nötigste eingedampft *g

Verfasst: Donnerstag 12. November 2009, 15:06
von EyDu
Dann kannst du auch gleich imap verwenden:

Code: Alles auswählen

def ungroup(d):
    return imap(list, izip(*d.values()))