Сортировка списка — обычная задача в программировании, но что, если вам нужно отсортировать список по четным числам? В этой статье мы рассмотрим пять интересных методов, позволяющих добиться этого с помощью 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()
, объединение двух отсортированных списков и реализацию алгоритма пузырьковой сортировки. Не стесняйтесь выбирать метод, который соответствует вашим потребностям и предпочтениям.