map, partial, GeneratorType e esgotamento de Iterators

This commit is contained in:
Luiz Otávio
2022-11-06 12:26:48 -03:00
parent 6227dc9197
commit 6aef685d54

61
aula111.py Normal file
View File

@@ -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]
))
)