[Python-de] Algorithmusfrage
Peter Otten
__peter__ at web.de
Don Aug 18 09:13:36 CEST 2005
Am Donnerstag, 18. August 2005 00:51 schrieb Henning.Ramm at mediapro-gmbh.de:
> Ich habe ein zweidimensionales Array, eigentlich ein verschachteltes
> Dict[y][x]. Daraus möchte ich alle Werte (Objekte) einer Spalte ziehen.
> Es sind aber nicht alle Felder belegt, das soll als None wiedergegeben
> werden. Geht das kürzer/effektiver als:
>
> def getCol(array, col):
> result = []
> for row in array:
> if col in self[row]:
> result.append(self[row][col])
> else:
> result.append(None)
> return result
>
> Ich dachte an sowas:
>
> return [ array[row][col] for row in array if col in array[row] else None ]
>
> aber das mit dem else geht ja nicht...
Ungetestet:
[row.get(col) for row in array.itervalues()]
Der Haken ist, dass die Reihenfolge der Einträge in einem dict undefiniert
ist. Und was passiert, wenn in dem 2D array eine ganze Zeile fehlt?
Peter