Esse repositório tem como objetivo guardar minhas soluções para participação do processo seletivo para estágio na Polícia Federal no Grupo de Integração Forense da Polícia Federal, assim como, explicar como se deu a solução.
A primeira etapa consiste na solução de dois problemas em Python.
Dado uma lista de dicionários (chave/valor) Python verifique se existe a chave 'nome', e caso exista salve o valor dessa chave em uma segunda lista, de modo que não haja repetição de valores na segunda lista.
Devido a natureza do problema, decidi por implementar uma função que recebe uma lista de dicionários como argumento e que retorna uma lista contendo os nomes sem repetição. Essa função pecorre a lista procurando a chave 'nome' nos dicionários. Quando é encontrada, o valor corresponde é adicionado a uma nova lista. Para manter a lista sem valores repetidos eu uso do artifício da classe set, que possiblilita a construção de uma coleção com elementos únicos.
Para mais detalhes a respeito da implementação do código acesse a solução.
Dado um arquivo csv com delimitador ';' e com o seguinte cabeçalho: id;nome;telefone;idade. Retorne uma lista com os registros ordenados por nome. Exemplo de arquivo:
Id;nome;telefone;idade
1;João;43383832;28
2;Maria;43839322;32
.
.
.
N;Zzzz;99999999;12
Para esse problema eu descidi por fazer duas implementação. A duas seguem a mesma linha de raciocínio e paradigma, orientação a objetos. Entretanto, diferem-se na função que lê do arquivo csv. Na primeira eu utilizo apenas a API padrão, enquanto na segunda solução também utilizo a biblioteca pandas para auxiliar na manipulação do arquivo csv.
Para modelar os registros criei uma classe chamada Pessoa, assim posso transformar cada linha de valores do arquivo em objeto contendo os campos id, nome, telefone e idade.
Após ler do arquivo e transformar o registro em uma lista de objetos(pessoas), chamo o método sort passando como chave o atributo nome.
Para mais detalhes a respeito da implementação dos códigos acesse as soluções:
Para facilitar a execução e não ser necessária a preparação do ambiente eu criei um notebook online utilizando a ferramenta Colab.
A execução é bem simples:
- acesse o notebook; e
- aperte o play.
- versão do Python: Python 3.5.2;
- versão do pandas: pandas 2.8.1;
- instalação da biblioteca pandas para execução local;
- A solução não contempla o tratamento de exceções caso o usuário passar um path inexistente ou se o mesmo não conter dados corentes com o formato csv válido.