Рубрики

Python | Переставьте положительные и отрицательные элементы

Иногда при работе со списками Python у нас может возникнуть проблема, из-за которой нам нужно выполнить сортировку в списке. Существует много вариантов сортировки, которые могут потребоваться для выполнения. Раз такой вариацией можно сортировать элементы списка, но, имея в виду, положительные элементы появляются перед отрицательными элементами. Давайте обсудим, как эту задачу можно выполнить.

Метод: использование sorted() + лямбда
Эта задача может быть выполнена с использованием комбинации вышеуказанных функций. В этой логике мы применяем вычисление обратных и отрицательных значений каждого числа, а затем выполняем сортировку с использованием sorted() . Инверсия гарантирует, что элементы большей величины встречаются посередине, а меньшие — на концах (расположение холмов), а отрицательный фактор обеспечивает создание положительных значений перед отрицательными.

# Python3 код для демонстрации работы
# Сортировка с сохранением положительных элементов перед отрицательными
# используя sorted () + лямбда

  
# инициализировать список

test_list = [4, -8, -6, 3, -5, 8, 10, 5, -19]

  
# печать оригинального списка

print("The original list is : " + str(test_list))

  
# Сортировка с сохранением положительных элементов перед отрицательными
# используя sorted () + лямбда

res = sorted(test_list, key = lambda i: 0 if i == 0 else -1 / i)

  
# результат печати

print("Result after performing sort operation : " + str(res))

Выход :

The original list is : [4, -8, -6, 3, -5, 8, 10, 5, -19]
Result after performing sort operation : [3, 4, 5, 8, 10, -19, -8, -6, -5]

Рекомендуемые посты:

Python | Переставьте положительные и отрицательные элементы

0.00 (0%) 0 votes