inverse Matrix: zip(*mylist) mit Fehlerprüfung

12/02/2009 - 15:00 von Thomas Guettler | Report spam
Hallo,

Mit zip(*mylist) erhàlt man die inverse Matrix:




zip(*['abc', 'def'])






[('a', 'd'), ('b', 'e'), ('c', 'f')]

Doch leider erhàlt man keine Fehlermeldung, wenn
nicht alle Listen gleich lang sind:




zip(*['abc', 'def', ''])






[]

Wie könnte man das (vielleicht mit itertools) einfach hinbekommen?

Gruß,
Thomas

Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de
 

Lesen sie die antworten

#1 Diez B. Roggisch
12/02/2009 - 15:16 | Warnen spam
Thomas Guettler wrote:

Hallo,

Mit zip(*mylist) erhàlt man die inverse Matrix:

zip(*['abc', 'def'])






[('a', 'd'), ('b', 'e'), ('c', 'f')]




Du meinst wohl die transponierte.

Doch leider erhàlt man keine Fehlermeldung, wenn
nicht alle Listen gleich lang sind:

zip(*['abc', 'def', ''])






[]

Wie könnte man das (vielleicht mit itertools) einfach hinbekommen?



def transpose(m):
l = len(m[0])
for row in m:
assert len(row) == l
return zip(*m)


Diez

Ähnliche fragen