Как отсортировать список по абсолютному значению?
необходимо отсортировать, но отсортировать на основе абсолютных значений в возрастающем порядке. Для примера, последовательность (-20, -5, 10, 15) будет отсортирована следующим образом (-5, 10, 15, -20). Ваша функция должна возвращать список (list) или кортеж (tuple).
Что не пробую постоянно No output.
def checkio(values: list) -> list:
n = [int(x) for x in values]
return abs(n).sort()
print(checkio([-20, -5, 10, 15])) #== [-5, 10, 15, -20]
print(checkio([1, 2, 3, 0])) #== [0, 1, 2, 3]
print(checkio([-1, -2, -3, 0])) #== [0, -1, -2, -3]
Ответы (2 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
Sorting HOW TO отлично вводит в тему. Потратьте пять минут, они окупятся сторицей.
sorted возвращает упорядоченную копию списка. key=abs задаёт порядок по абсолютной величине:
def checkio(values: list) -> list:
return sorted(values, key=abs)
print(checkio([-20, -5, 10, 15])) #== [-5, 10, 15, -20]
print(checkio([1, 2, 3, 0])) #== [0, 1, 2, 3]
print(checkio([-1, -2, -3, 0])) #== [0, -1, -2, -3]