2
respostas

[Dúvida] Mão na massa - substituindo o for por um list comprehension

Boa tarde

Vi que solução proposta pelo instrutor é

new_dados_csv = [{key_mapping.get(old_key): value for old_key, value in old_dict.items()} for old_dict in dados_csv]

usando get, seguindo o que foi feito também ao longo da aula

Escrivo o mesmo código, com uma pequena alteração

new_dados_csv = [{key_mapping[old_key]: value for old_key, value in old_dict.items()} for old_dict in dados_csv]

Gostaria de saber as diferenças entre as duas formas, se há um jeito melhor em termos de performance ou também de facilidade de compreensão do código.

Obrigado

2 respostas

Acabei de ver que a diferença entre get() e [] é explicada na aula 04. Salvando os dados :-D
O get não devolve erro caso não encontre a chave.

Além desse diferença muda algo em termos de performance?

Obrigado

No que diz respeito a performance não, no final os dois possuem o mesmo fim. O que ocorre é para futuras manutenções, para mais leigos será de dificil compreensão e correção. Quanto menor a linha de código e mais inteligente, mais complexo é sua interpretação e manutenção, tendo em vista que os códigos tem um gap de nivel jr para pleno. Mas continue nessa linha de raciocinio, é importante saber o que se passa por trás do que codamos, grande maioria só codam sem se preocupar com esses detalhes.