5 крутых методов сортировки списка по четным числам: руководство Pythonista

Сортировка списка — обычная задача в программировании, но что, если вам нужно отсортировать список по четным числам? В этой статье мы рассмотрим пять интересных методов, позволяющих добиться этого с помощью Python. Итак, давайте углубимся и раскроем секреты сортировки списков по четным числам!

Метод 1: использование генератора списков
Один из самых простых способов сортировки списка по четным числам — использование генератора списков. Вот как это работает:

numbers = [5, 2, 9, 10, 4, 7, 6]
sorted_numbers = [x for x in numbers if x % 2 == 0] + [x for x in numbers if x % 2 != 0]
print(sorted_numbers)

При таком подходе мы создаем два отдельных списка, используя функцию распознавания списков. Первый список содержит четные числа, а второй список содержит нечетные числа. Наконец, мы объединяем два списка, чтобы получить отсортированный список с четными номерами в начале.

Метод 2: использование функции Sorted() с пользовательским ключом
Встроенная функция Python sorted()позволяет нам указать собственный ключ для сортировки. Мы можем воспользоваться этой функцией для сортировки списка по четным числам:

numbers = [5, 2, 9, 10, 4, 7, 6]
sorted_numbers = sorted(numbers, key=lambda x: x % 2 != 0)
print(sorted_numbers)

Здесь мы передаем лямбда-функцию в качестве параметра keyв функцию sorted(). Лямбда-функция возвращает Trueдля нечетных чисел и Falseдля четных чисел, эффективно сортируя список сначала с четными числами.

Метод 3: использование метода Sort() с настраиваемым ключом
Подобно предыдущему методу, мы можем добиться того же результата, используя метод sort()с настраиваемым ключом:

numbers = [5, 2, 9, 10, 4, 7, 6]
numbers.sort(key=lambda x: x % 2 != 0)
print(numbers)

При таком подходе исходный список изменяется на месте, сортируя его на основе пользовательского ключа.

Метод 4. Использование двух отдельных списков и сортировка.
Другой метод предполагает создание двух отдельных списков для четных и нечетных чисел, их сортировку по отдельности, а затем их объединение:

numbers = [5, 2, 9, 10, 4, 7, 6]
even_numbers = sorted([x for x in numbers if x % 2 == 0])
odd_numbers = sorted([x for x in numbers if x % 2 != 0])
sorted_numbers = even_numbers + odd_numbers
print(sorted_numbers)

Здесь мы создаем два списка, используя функцию распознавания списков, сортируем их отдельно и, наконец, объединяем, чтобы получить отсортированный список с четными числами впереди.

Метод 5. Использование алгоритма пузырьковой сортировки.
В образовательных целях давайте реализуем базовый алгоритм сортировки, называемый пузырьковой сортировкой, для сортировки списка по четным числам:

numbers = [5, 2, 9, 10, 4, 7, 6]
n = len(numbers)
for i in range(n - 1):
    for j in range(n - i - 1):
        if numbers[j] % 2 != 0 and numbers[j + 1] % 2 == 0:
            numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j]
print(numbers)

При таком подходе мы перебираем список и меняем местами соседние элементы, если текущий элемент нечетный, а следующий четный. Этот процесс продолжается до тех пор, пока список не будет отсортирован.

Сортировку списка по четным числам можно выполнить с помощью различных методов Python. В этой статье мы рассмотрели пять различных методов, включая понимание списка, использование функции sorted(), использование метода sort(), объединение двух отсортированных списков и реализацию алгоритма пузырьковой сортировки. Не стесняйтесь выбирать метод, который соответствует вашим потребностям и предпочтениям.