class Livraria(object): def __init__(self): self.estante = list() self.carrinho = Carrinho() def adicionar_livro_no_carrinho(self, idx): self.carrinho.adicionar_produto(self.estante[idx]) def adicionar_livro_na_estante(self, livro): self.estante.append(livro) def finalizar_compra(self): soma = 0 m = lambda livro: livro.preco r = lambda soma, preco: soma + preco for colecao in self.carrinho.produtos: soma_colecao = reduce(r, map(m, colecao)) soma = soma + soma_colecao -soma_colecao*(len(colecao) -1)*0.05 soma = round(soma,2) return soma