Sto provando ad associare un gruppo di elementi in una lista per creare un oggetto finale, in un modo che è analogo a fare una somma di oggetti. Sto cercando di utilizzare una semplice variante su reduce
dove consideri un elenco di coppie piuttosto che un elenco semplice per farlo. Voglio fare qualcosa sulla falsariga di:usando Python riduci su un elenco di coppie
nums = [1, 2, 3]
reduce(lambda x, y: x + y, nums)
tranne vorrei aggiungere ulteriori informazioni alla somma che è specifico per ogni elemento della lista dei numeri nums
. Ad esempio, per ogni coppia (a, b) nell'elenco, eseguire la somma di (a + b):
nums = [(1, 0), (2, 5), (3, 10)]
reduce(lambda x, y: (x[0]+x[1]) + (y[0]+y[1]), nums)
Questo non funziona:
>>> reduce(lambda x, y: (x[0]+x[1]) + (y[0]+y[1]), nums)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
TypeError: 'int' object is unsubscriptable
Perché non funziona? So che posso codificare nums
come un elenco semplice - non è questo il punto - voglio solo essere in grado di creare un'operazione di riduzione che può scorrere su un elenco di coppie, o su due elenchi della stessa lunghezza contemporaneamente e informazioni sul pool da entrambe le liste. Grazie.
Vuoi il risultato della riducono ad essere una tupla? –
Devi usare ridurre? Preferisco la semplice somma (x [0] + x [1] per x in nums) – cerealy