Simulador de Consulta SQL
Explorando SQL com Python - 1/2
Descrição
Neste desafio, você vai simular a operação de uma consulta que filtra funcionários por cargo, semelhante ao comportamento de uma consulta SQL com a cláusula WHERE. O objetivo é filtrar uma lista de funcionários pelo cargo especificado e retornar os nomes daqueles que ocupam o cargo desejado.
Embora o SQL seja uma linguagem utilizada para consultas em bancos de dados, aqui estamos simulando uma operação similar em Python, filtrando uma lista de dicionários que contém as informações dos funcionários.
Entrada
Você receberá:
- Um número inteiro n representando o número de funcionários.
- Uma lista de dicionários, onde cada dicionário contém três chaves:
- id: o identificador único do funcionário,
- nome: o nome do funcionário,
- cargo: o cargo ocupado pelo funcionário.
- Uma string representando o cargo que você deseja filtrar.
Saída
Uma lista com os nomes dos funcionários que ocupam o cargo especificado.
Exemplos
Entrada | Saída |
---|---|
3 | ['Ana', 'Maria'] |
1 | |
Ana | |
Desenvolvedora | |
2 | |
Pedro | |
Gerente | |
3 | |
Maria | |
Desenvolvedora | |
Desenvolvedora |
Entrada | Saída |
---|---|
2 | ['João', 'Luiza'] |
4 | |
João | |
Analista | |
5 | |
Luiza | |
Analista | |
Analista |
Entrada | Saída |
---|---|
2 | ['Carlos'] |
6 | |
Carlos | |
Gerente | |
7 | |
Sofia | |
Diretora | |
Gerente |
Resolução
def filtrar_funcionarios(funcionarios, cargo):
# Filtra os funcionários pelo cargo e retorna uma lista com os nomes
return [funcionario["nome"] for funcionario in funcionarios if funcionario["cargo"] == cargo]
# Função para entrada do usuário
def main_filtro():
# Recebe o número de funcionários
n = int(input())
funcionarios = []
# Recebe os dados de cada funcionário
for _ in range(n):
id_funcionario = int(input())
nome = input()
cargo = input()
funcionarios.append({"id": id_funcionario, "nome": nome, "cargo": cargo})
# Recebe o cargo que queremos filtrar
cargo_filtro = input()
# Chama a função de filtro e exibe o resultado
resultado = filtrar_funcionarios(funcionarios, cargo_filtro)
print(resultado)
# Executando a função principal
main_filtro()
Para encontrar outras soluções, verifique aqui.
Caso encontre algum erro ou tenha sugestões, clique aqui e abra uma issue no Github.