1
resposta

Exercício 4 - Melhoria

Olá, bom dia.
com relação ao exercício 4, fiz dessa forma.

#4

def pos_elemento(x):
  for i in range(len(x)):
    i
    return i

aluguel = [('Apartamento', 1700), ('Apartamento', 1400), ('Casa', 2150), ('Apartamento', 1900), ('Casa', 1100)]

valor = [aluguel.index(i) for i in aluguel if i[0] == 'Apartamento']
valor

Poderia ser melhorado? Não pensei em outra forma que não fosse o .index()....

1 resposta

Tudo bem, Daniel?

Usar o index() é válido para encontrar posições. No ccontexto do exercício, o list comprehension ajuda a focar na extração direta dos dados que você precisa como pede na atividade.

O seu código tenta encontrar a posição (indice) dentro de um loop é sempre retorna o primeiro indice encontrado para aquele valo, o que pode não ser o comportamento esperado se houver itens repetidos.

Para simplificar e melhorar, podemos usar o código com o list comprehesion:

aluguel = [('Apartamento', 1700), ('Apartamento', 1400), ('Casa', 2150), ('Apartamento', 1900), ('Casa', 1100)]

valores_apartamentos = [tupla[1] for tupla in aluguel if tupla[0] == 'Apartamento']
print(valores_apartamentos)

Isso traz legibilidade, perfomance e robustez para o código. Caso faça o teste, não esqueça de adaptar de acordo com os seus objetivos.

Material Complementar
Esse conteúdo pode estar em inglês, para traduzi-lo utilize o tradutor automático do navegador ou clique com o botão direito do mouse sobre a página e selecione a opção Traduzir para o português.

Espero ter ajudado. Continue se dedicando e qualquer dúvida, compartilhe no fórum.

Bons estudos e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado