Sie eine Liste von Listen erstellen kann dann reduzieren sie zu verbinden.
print [[n,n*n] for n in range (10)]
[[0, 0], [1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36], [7, 49], [8, 64], [9, 81]]
print reduce(lambda x1,x2:x1+x2,[[n,n*n] for n in range (10)])
[0, 0, 1, 1, 2, 4, 3, 9, 4, 16, 5, 25, 6, 36, 7, 49, 8, 64, 9, 81]
print reduce(lambda x1,x2:x1+x2,[[n**e for e in range(1,4)]\
for n in range (1,10)])
[1, 1, 1, 2, 4, 8, 3, 9, 27, 4, 16, 64, 5, 25, 125, 6, 36, 216, 7, 49, 343, 8, 64, 512, 9, 81, 729]
Reduzieren verwendet einen aufrufbaren Ausdruck, der zwei Argumente benötigt und eine Sequenz verarbeitet, indem er mit den ersten beiden Elementen beginnt. Das Ergebnis des letzten Ausdrucks wird dann als erstes Element in nachfolgenden Aufrufen verwendet. In diesem Fall wird jede Liste nacheinander zur ersten Liste in der Liste der Listen hinzugefügt, und dann wird diese Liste als Ergebnis zurückgegeben.
Liste Comprehensions ruft implizit Karte mit einem Lambda-Ausdruck der Variable und Sequenz durch die „für var in Sequenz“ Ausdruck definiert ist. Das Folgende ist die gleiche Art von Dingen.
map(lambda n:[n,n*n],range(1,10))
[[1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36], [7, 49], [8, 64], [9, 81]]
Ich bin nicht bewusst von einem natürlichen Python-Ausdruck für reduzieren.
Du wird nicht lesbar erhalten, oneliner Lösungen. Verspätete Warnung gegeben: P – ytpillai