diff --git a/aula111.py b/aula111.py new file mode 100644 index 0000000..c69d8cb --- /dev/null +++ b/aula111.py @@ -0,0 +1,61 @@ +# map, partial, GeneratorType e esgotamento de Iterators + +from functools import partial +from types import GeneratorType + + +# map - para mapear dados +def print_iter(iterator): + print(*list(iterator), sep='\n') + print() + + +produtos = [ + {'nome': 'Produto 5', 'preco': 10.00}, + {'nome': 'Produto 1', 'preco': 22.32}, + {'nome': 'Produto 3', 'preco': 10.11}, + {'nome': 'Produto 2', 'preco': 105.87}, + {'nome': 'Produto 4', 'preco': 69.90}, +] + + +def aumentar_porcentagem(valor, porcentagem): + return round(valor * porcentagem, 2) + + +aumentar_dez_porcento = partial( + aumentar_porcentagem, + porcentagem=1.1 +) + +# novos_produtos = [ +# {**p, +# 'preco': aumentar_dez_porcento(p['preco'])} +# for p in produtos +# ] + + +def muda_preco_de_produtos(produto): + return { + **produto, + 'preco': aumentar_dez_porcento( + produto['preco'] + ) + } + + +novos_produtos = list(map( + muda_preco_de_produtos, + produtos +)) + + +print_iter(produtos) +print_iter(novos_produtos) + +print( + list(map( + lambda x: x * 3, + [1, 2, 3, 4] + )) +)