Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Escreva a função address(), que aceite uma lista de números de casa da rua e retorne o número onde você deverá ficar.

Você está visitando sua cidade natal e planeja ficar na casa de um amigo. Acontece que todos os seus amigos moram na mesma rua. Para ser eficiente, você gostaria de ficar na casa de um amigo que esteja em um local central no seguinte sentido: o mesmo número de amigos, dentro de 1, reside em qualquer direção. Se as casas de dois amigos satisfizerem esse critério, escolha o amigo com o menor endereço de casa na rua.

Escreva a função address(), que aceite uma lista de números de casa da rua e retorne o número onde você deverá ficar.

>>> address([2, 1, 8, 5, 9])
5
>>> address([2, 1, 8, 5])
2
>>> address([1, 1, 1, 2, 3, 3, 4, 4, 4, 5])

Alguma ideia de como desenvolver a função?

1 resposta
solução!

Olá Edson,

Um jeito para resolver isso é ordenar a lista e então calcular o índice do valor central:

def address(numeros):
  # Ordena a lista
  numeros_ordenados = sorted(numeros)

  # Pega o tamanho da lista e
  # calcula o índice central
  total_numeros = len(numeros_ordenados)
  indice = (total_numeros - 1) // 2

  return numeros_ordenados[indice]

O principal detalhe desse código está na divisão com o // esse operador vai retornar a divisão arredondando para baixo caso necessário.