Durante la programmazione in Python, ora evito map
, lambda
e filter
utilizzando le list comprehensions perché è più facile da leggere e più veloce nell'esecuzione. Ma è possibile sostituire anche lo reduce
?python: può essere tradotto in una lista comprensibile come map, lambda e filter?
E.g. un oggetto ha un operatore union()
che funziona su un altro oggetto, a1.union(a2)
e fornisce un terzo oggetto dello stesso tipo.
Ho un elenco di oggetti:
L = [a1, a2, a3, ...]
Come avere l'unione() di tutti questi oggetti con list comprehension, l'equivalente di:
result = reduce(lambda a, b :a.union(b), L[1:], L[0])
In alcuni casi: n. Ma dipende Si prega di fornire una query specifica che avete in mente – sshashank124
@ sshashank124 - qualche esempio? – mhawke
Le unioni di set sono un cattivo esempio, perché puoi semplicemente fare 'result = set(). Union (* L)', che ha il vantaggio di funzionare anche se L è una lista vuota. Ad ogni modo, 'lambda a, b: a.union (b)' può essere scritto in modo più conciso come 'set.union', poiché in python' obj.method (args) 'è lo stesso di' cls.method (obj , args) ' – Eric