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