nuno35 Posted April 2, 2017 at 04:11 PM Report #603475 Posted April 2, 2017 at 04:11 PM Boa tarde estou aqui com algumas duvidas Quero criar um função "redI" que recebe os mesmos parâmetros que o reduce(função,lista,elemento) mas esta função é para retornar uma lista com todos os passos do acumulador. Exemplo: >>> redI(lambda acc, x: acc + x, [3, 5, 2, 1], 0) [0, 3, 8, 10, 11] def redI(f,l,e): if len(l)==0: return e else: return map(f,l) print redI(lambda acc, x: acc + x, [3, 5, 2, 1], 0) ao correr isto ele deveria retornar a lista com a função aplicada mas esta me a dar um erro por estar a dar dois argumentos ao lambda precisava de uma ajuda aqui. Desde já Obrigado
Rui Carlos Posted April 5, 2017 at 08:48 PM Report #603511 Posted April 5, 2017 at 08:48 PM Não me parece que possas fazer o que pretendes com o map, na medida em que o resultado para cada posição dependeria um estado global. Contudo, uma definição recursiva é relativamente simples: def redI(f, l, e): if len(l) == 0: return [e] else: return [e] + redI(f, l[1:], e + l[0]) Rui Carlos Gonçalves
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now