A média dos antípodas
Neste desafio, você recebe uma lista e, em seguida, deve obter uma lista menor seguindo três etapas:
- Divida a lista em duas partes de mesmo comprimento. Se a lista fornecida tiver comprimento ímpar, você deverá eliminar o número que está no meio da lista para obter duas partes iguais.
- Some cada número da primeira parte com cada número da segunda parte invertida, obtendo uma nova lista única com o mesmo comprimento das duas partes anteriores.
- Divida por dois cada número da lista final.
Dada uma lista de inteiros lst, implemente uma função que retorne uma nova lista aplicando o algoritmo acima.
Exemplos
antipodes_average([1, 2, 3, 4]) ➞ [2.5, 2.5]
# Left part = [1, 2]
# Reversed right part = [4, 3]
# List resulting from the sum of each pair = [5, 5]
# Each number is divided by two = [2.5, 2.5]
antipodes_average([1, 2, 3, 4, 5]) ➞ [3, 3]
# The length of list is odd, number 3 (in the middle) is eliminated
# Left = [1, 2]
# Reversed right = [5, 4]
# Sum = [6, 6]
# Division by two = [3, 3]
antipodes_average([-1, -2]) ➞ [-1.5]
# (-1 + -2) / 2 = [-1.5]Observações
- Toda
lstfornecida conterá pelo menos dois números. - Na
lstfornecida, os números serão sempre inteiros (positivos ou negativos), mas os números da lista final retornada também podem ser do tipo float (positivos ou negativos; consulte os exemplos #1 e #3). - Você pode realizar as três etapas separadamente ou pensar em como sintetizar o algoritmo para obter o resultado.