[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