Gegeben ein Array von Arrays mit unterschiedlichen Längen. Gibt es einen Reiniger (kürzer), um die Längen der Arrays zu, indem die kürzeren mit Nullen außer dem folgenden Code ausfüllen:Gleichsetzen der Längen der Arrays in einem Array von Arrays
a = [[1.0, 2.0, 3.0, 4.0],[2.0, 3.0, 1.0],[5.0, 5.0, 5.0, 5.0],[1.0, 1.0]]
max =0
for x in a:
if len(x) > max:
max = len(x)
print max
new = []
for x in a:
if len(x)<max:
x.extend([0.0]* (max-len(x)))
new.append(x)
print new
Wiederholung 'max (Karte (len, a))' für jedes Array ziemlich ineffizient ist ... – deceze
Du hast Recht, manchmal ist es besser, kein Einzeiler verwenden. Die Lösung von @eugene y ist daher natürlich effektiver. –